私はいくつかの言語で書かれた膨大な数の文書を扱っています。私はtf-idfのスコアから文書間のコサイン距離を計算したいと思う。これまでのところ私が持っている:日本語のテキストにTfidfVectorizerを付けたit-idf
from sklearn.feature_extraction.text import TfidfVectorizer
# The documents are located in the same folder as the script
text_files = [r'doc1', r'doc2', r'doc3']
files = [open(f) for f in text_files]
documents = [f.read() for f in files]
vectorizer = TfidfVectorizer(ngram_range=(1,1))
tfidf = vectorizer.fit_transform(documents)
vocabulary = vectorizer.vocabulary_
3つの文書doc1
、doc2
とdoc3
は、英語のテキストが含まれている場合は、このアルゴリズムは、魔法のように動作し、vocabulary
は確かに、テキストの異なる体からのユニグラムが含まれていません。私はロシア人もやってみました。しかし、日本語のテキストを試してみると、アルゴリズムは意図したとおりに動作しません。
問題は、日本語にはスペースがないため、TfidfVectorizerは単語が何で、それが何でないか理解できません。例えば、私は私のユニグラム語彙にこのようなものを持っているでしょう:
診多索いほ権込真べふり告車クノ般宮えぼぜゆ注携ゆクく供9時ク転組けが意見だった税新規ト復興ひり教台話辞ゃに
これは明らかに文章であり、言葉ではありません。どうすればこの問題を解決できますか?
英語またはロシア語の単語を使用すると、 'documents'リストはどのように見えますか?このようなもの: '' '、' '、' '、' '、' '、' ' – blacksite
各文書はテキストの本文です。何かのように: '[塩の穀物の中に無限の宇宙があります、 '塩はあなたにとって非常に有益です、'私たちの宇宙は唯一のものです ']'ずっと長く。 –