gensim で、doc2vec モデルをトレーニングするための入力として文字列を指定すると、次のエラーが発生します。
TypeError('don't know how to handle uri %s' % repr(uri))
この質問Doc2vec : TaggedLineDocument()を参照しまし たが、入力形式についてはまだ疑問があります。
documents = TaggedLineDocument('myfile.txt')
myFile.txt には、各ドキュメントまたは文字列の各行に、リストのリストまたは個別のリストとしてトークンを含める必要がありますか?
For eg
- 書類が 2 つあります。
Doc 1 : 機械学習は、パターン認識の研究から発展したコンピューター サイエンスのサブフィールドです。
Doc 2 : Arthur Samuel は、機械学習を「コンピューターに学習能力を与える研究分野」と定義しました。
それで、どのmyFile.txt
ように見えるべきですか?
ケース 1 : 各文書の各行の単純なテキスト
機械学習は、パターン認識の研究から発展したコンピューター サイエンスのサブフィールドです。
Arthur Samuel は、機械学習をコンピュータに学習能力を与える研究分野と定義しました。
ケース 2 : 各ドキュメントのトークンを持つリストのリスト
[ ["Machine", "learning", "is", "a", "subfield", "of", "computer", "science", "that", "evolved", "from", "the", "study", "of", "pattern", "recognition"]
、
["Arthur", "Samuel", "defined", "machine", "learning", "as", "a", "Field", "of", "study", "that", "gives", "computers" ,"the", "ability", "to", "learn"] ]
ケース 3 : 各ドキュメントのトークンのリストを別の行に表示する
["Machine", "learning", "is", "a", "subfield", "of", "computer", "science", "that", "evolved", "from", "the", "study", "of", "pattern", "recognition"]
["Arthur", "Samuel", "defined", "machine", "learning", "as", "a", "Field", "of", "study", "that", "gives", "computers" ,"the", "ability", "to", "learn"]
そして、テストデータでそれを実行しているとき、ドキュメントベクトルを予測したい文の形式は何ですか? 以下のケース1またはケース2のようにする必要がありますか?
model.infer_vector(testSentence, alpha=start_alpha, steps=infer_epoch)
testSentence は次のようになります。
ケース 1 : 文字列
testSentence = "Machine learning is an evolving field"
ケース 2 : トークンのリスト
testSentence = ["Machine", "learning", "is", "an", "evolving", "field"]