无法从快速文本中的文本文件进行训练.获取值错误:空词汇表



我正在尝试使用以下代码创建快速文本单词嵌入

import fasttext
from os import path
txt_path = path.join("/home/ccse/FastText_embeddings", "train.txt")
model = fasttext.train_unsupervised(txt_path, model='cbow')

这里的火车.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.

我不明白它的原因以及如何解决它。

附加信息: 我在跑—— 乌班图18.04, 蟒蛇 3.6.8, 快速文本 0.9.1

我得到了解决方案。我犯了一个愚蠢的错误。将解决方案留在这里,以防有人犯了和我一样的愚蠢错误。

最小计数的默认值设置为 5。由于我的火车文件只包含 1 行,每个单词只出现一次,所以我收到了这个错误。 要修复它,我只需要更改参数值。

model = fasttext.train_unsupervised(txt_path, model='cbow', minCount = 1)

在现实生活中创建嵌入时(不是为了测试函数(,我们将使用大型语料库。在这种情况下,我们不应该面对这个问题。

最新更新