私はPythonの初心者で、ローカルマシンからcsvファイルをインポートした後にPOSタグ付けを行いたいと思います。私はオンラインからいくつかのリソースを探し、次のコードが動作することを発見しました。CSVファイルからのPythonトークン化とPOSタグ付け
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)
私はそれを印刷して以来、上のコードの結果は次のようになります。
[[('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'), ('.', '.')]]
これは私が取得したいと思い望ましい結果であるが、私はいくつかの行が含まれているCSVファイルをインポートした後、結果を取得したいと思い(各行に、いくつかの文章があります。)。たとえば、CSVファイルは次のようになります。最終的には
---------------------------------------------------------------
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.
---------------------------------------------------------------
、私はcsvファイルをインポートした後、上記の表示が望ましいのPOSタグ付け結果を保存したいと思います。私は(posタグ付き)各センテンスをcsv形式で各行に保存(書き込み)したいと思います。
2つの形式が可能です。最初は次のようになります(ヘッダーなし、各行にposタグ付き)。
----------------------------------------------------------------------------
[[('I', 'PRON'), ('like', 'VBD'), ('this', 'PRON'), ('product', 'NN')]]
----------------------------------------------------------------------------
[[('This', 'PRON'), ('product', 'NN'), ('is', 'VERB'), ('beautiful', 'ADJ')]]
---------------------------------------------------------------------------
[[('I', 'PRON'), ('love', 'VERB'), ('it', 'PRON')]]
----------------------------------------------------------------------------
...
第二のフォーマットは次のように見えるかもしれない(NOヘッダ、一つのセルに保存されたトークン及びPOSタガーの各セット):
----------------------------------------------------------------------------
('I', 'PRON') | ('like', 'VBD') | ('this', 'PRON') | ('product', 'NN')
----------------------------------------------------------------------------
('This', 'PRON') | ('product', 'NN') | ('is', 'VERB') | ('beautiful', 'ADJ')
---------------------------------------------------------------------------
('I', 'PRON') | ('love', 'VERB') | ('it', 'PRON') |
----------------------------------------------------------------------------
...
Iは、最初の第2のフォーマットを好みます。
私がここに書いたpythonコードは完全に動作しますが、私はCSVファイルでも同じことをやりたいと思いますし、最終的に私のローカルマシンに保存します。
最終的な目的は、文から名詞型の単語(NN、NNPなど)のみを抽出したいということです。
誰かがpythonコードを修正する方法を教えてもらえますか?
結果のCSVをどのように使用する予定ですか?私は括弧でこれをPythonにリロードしようとすると頭痛になるかもしれないので尋ねるだけです。 – Tony