Je suis un débutant en Python et je voudrais faire du marquage POS après avoir importé le fichier CSV de ma machine locale. J'ai regardé quelques ressources en ligne et j'ai trouvé que le code suivant fonctionne.Tokenizing et POS tagging en Python à partir du fichier CSV
text = 'Senator Elizabeth Warren from Massachusetts announced her support of
Social Security in Washington, D.C. on Tuesday. Warren joined other
Democrats in support.'
import nltk
from nltk import tokenize
sentences = tokenize.sent_tokenize(text)
sentences
from nltk.tokenize import TreebankWordTokenizer
texttokens = []
for sent in sentences:
texttokens.append(TreebankWordTokenizer().tokenize(sent))
texttokens
from nltk.tag import pos_tag
taggedsentences = []
for sentencetokens in texttokens:
taggedsentences.append(pos_tag(sentencetokens))
taggedsentences
print(taggedsentences)
Depuis que je l'ai imprimé, le résultat du code ci-dessus ressemble à ceci.
[[('Senator', 'NNP'), ('Elizabeth', 'NNP'), ('Warren', 'NNP'), ('from',
'IN'), ('Massachusetts', 'NNP'), ('announced', 'VBD'), ('her', 'PRP$'),
('support', 'NN'), ('of', 'IN'), ('Social', 'NNP'), ('Security', 'NNP'),
('in', 'IN'), ('Washington', 'NNP'), (',', ','), ('D.C.', 'NNP'), ('on',
'IN'), ('Tuesday', 'NNP'), ('.', '.')], [('Warren', 'NNP'), ('joined',
'VBD'), ('other', 'JJ'), ('Democrats', 'NNPS'), ('in', 'IN'), ('support',
'NN'), ('.', '.')]]
Ceci est un résultat souhaitable que je voudrais faire, mais je voudrais obtenir le résultat après l'importation d'un fichier csv qui contient plusieurs lignes (dans chaque ligne, il y a plusieurs phrases.). Par exemple, le fichier csv ressemble à ceci:
---------------------------------------------------------------
I like this product. This product is beautiful. I love it.
---------------------------------------------------------------
This product is awesome. It have many convenient features.
---------------------------------------------------------------
I went this restaurant three days ago. The food is too bad.
---------------------------------------------------------------
En fin de compte, je voudrais enregistrer les résultats souhaitables de marquage pos que j'affiché ci-dessus après avoir importé le fichier csv. Je voudrais sauvegarder (écrire) le (pos tagged) chaque phrase dans chaque rangée comme format csv.
Deux formats peuvent être possibles. Le premier pourrait être le suivant (pas d'en-tête, chaque phrase (pos tagged) dans une rangée).
----------------------------------------------------------------------------
[[('I', 'PRON'), ('like', 'VBD'), ('this', 'PRON'), ('product', 'NN')]]
----------------------------------------------------------------------------
[[('This', 'PRON'), ('product', 'NN'), ('is', 'VERB'), ('beautiful', 'ADJ')]]
---------------------------------------------------------------------------
[[('I', 'PRON'), ('love', 'VERB'), ('it', 'PRON')]]
----------------------------------------------------------------------------
...
Le second format pourrait ressembler à ceci (sans en-tête, chaque jeu de tagger jeton et pos enregistré dans une cellule):
----------------------------------------------------------------------------
('I', 'PRON') | ('like', 'VBD') | ('this', 'PRON') | ('product', 'NN')
----------------------------------------------------------------------------
('This', 'PRON') | ('product', 'NN') | ('is', 'VERB') | ('beautiful', 'ADJ')
---------------------------------------------------------------------------
('I', 'PRON') | ('love', 'VERB') | ('it', 'PRON') |
----------------------------------------------------------------------------
...
Je préfère le second format au premier.
Le code python que j'ai écrit ici fonctionne parfaitement mais je voudrais faire la même chose pour le fichier csv et finalement le sauvegarder dans ma machine locale. Le but final de ceci est que je voudrais extraire seulement des noms de types de mots (par exemple, NN, NNP) des phrases. Est-ce que quelqu'un peut m'aider à corriger le code python?
Je suis curieux de savoir comment vous prévoyez d'utiliser le CSV résultant? Je demande seulement parce que essayer de recharger ceci en python avec la parenthèse pourrait devenir un mal de tête. – Tony