我使用的是一个大的德语语料库,我已经清除了所有特殊的字符/数字/标点符号。每一行包含一个句子。
正在运行
fastText/./fasttext skipgram -input input.txt -output output.txt
-minCount 2 -minn 2 -maxn 8 -dim 300 -ws 5返回一个以<\s>作为第一个条目的VSM。
根据我对它的理解,文档中还有一些空白被解释为标记。
对吗?
我怎样才能摆脱它们和/或VSM中的<\s>?
谢谢。
发布于 2022-02-08 21:41:13
按照惯例,fasttext工具将输入文件中的任何换行符转换为伪词标记'<\s>',以表示字符串的结尾('EOS')。
请参阅Python绑定Markdown文档中的讨论:
换行符用于分隔文本行。特别是,如果遇到换行符,EOS令牌就会附加到一行文本中。唯一的例外是,如果令牌的数量超过字典头中定义的MAX_LINE_SIZE常量。这意味着,如果文本不是由换行符分隔的,例如fil9数据集,则它将被分解为带有令牌的MAX_LINE_SIZE的块,并且EOS令牌不会被追加。
令牌的长度是UTF-8字符的数目,方法是考虑字节的前两位来识别多字节序列的后续字节。在选择子单词的最小和最大长度时,了解这一点尤其重要。此外,EOS令牌(如Dictionary中所指定的)被认为是一个字符,不会被分解为子单词。
(虽然在该文档中只提到了Python绑定,但它肯定是在核心C++代码中定义/实现的,特别是dictionary.cc文件。)
为了消除这个单词标记,您必须删除输入文件中的所有换行符。
https://stackoverflow.com/questions/71036635
复制相似问题