tsvファイルを分かち書きし、特定の品詞を基本形で出力したい
tsvファイルをmecabを用いて分かち書きを行い、名詞・形容詞・動詞のみを基本形でリスト化したいです。
tsvファイルを読み込み、mecabを用いて分かち書きし、ストップワードを除外するコード/名詞・形容詞・動詞のみを基本形で分かち書きするコードはそれぞれあるのですが、2つを組み合わせる方法が分かりません。
どなたかご教授いただけると幸いです。
使用環境
jupyternotebook
windows10
tsvファイルを読み込み、mecabを用いて分かち書きし、ストップワードを除外するコード
from gensim.models.doc2vec import Doc2Vec
from gensim.models.doc2vec import TaggedDocument
import MeCab
import csv
mt = MeCab.Tagger()
reports = []
with open("reports.tsv",mode='r',encoding='utf-8') as f:
# reports.tsvには一行にID,文章がtab区切りで保存されている
reader = csv.reader(f, delimiter="\t")
for report_id, report in reader:
words = []
node = mt.parseToNode(report)
while node:
if len(node.surface) > 0:
words.append(node.surface)
node = node.next
stopword = ['では','のみ','か','まだ','はず','く','て','つつ','ば','でも']
words2 = [token for token in words if token not in stopword]
# wordsが文章の単語のリスト,tagsには文章IDを指定
reports.append(TaggedDocument(words=words2, tags=[report_id]))
print(reports)
名詞・形容詞・動詞のみを基本形で分かち書きするコード
tokenizer = MeCab.Tagger()
tokenizer.parse("")
node = tokenizer.parseToNode("テキストデータ")
keywords = []
while node:
if node.feature.split(",")[0] == u"名詞":
keywords.append(node.surface)
elif node.feature.split(",")[0] == u"形容詞":
keywords.append(node.feature.split(",")[6])
elif node.feature.split(",")[0] == u"動詞":
keywords.append(node.feature.split(",")[6])
node = node.next
print(keywords)