我正在尝试使用以下代码创建快速文本词嵌入。
import fasttext
from os import path
txt_path = path.join("/home/ccse/FastText_embeddings", "train.txt")
model = fasttext.train_unsupervised(txt_path, model='cbow')
这里train.txt仅包含一行-“祝您有美好的一天。”
运行代码后,出现以下错误:
Read 0M words
Number of words: 0
Number of labels: 0
Traceback (most recent call last):
File "ft_embedding.py", line 4, in <module>
model = fasttext.train_unsupervised(txt, model='cbow')
File "/home/ccse/.local/lib/python3.6/site-packages/fasttext/FastText.py", line 455, in train_unsupervised
fasttext.train(ft.f, a)
ValueError: Empty vocabulary. Try a smaller -minCount value.
我不了解其原因以及解决方法。
附加信息:我在跑步-Ubuntu 18.04,Python 3.6.8,fasttext 0.9.1
我得到了解决方案。我犯了一个愚蠢的错误。万一有人犯了和我一样的愚蠢错误,就把解决方案留在这里。minCount的默认值设置为5。由于我的训练文件只包含1行,每个单词仅出现一次,所以我遇到了该错误。要解决此问题,我只需要更改参数值即可。
model = fasttext.train_unsupervised(txt_path, model='cbow', minCount = 1)