有没有现成的库或API可以用于分离基于字符的语言中的单词?

4
我正在从事一个小型的 Python 业余项目,该项目涉及使用特定语言的大量文本创建词典。对于大多数语言,这相对简单,因为我可以使用单词之间的空格分隔符将段落标记化为词以创建词典,但例如中文在词之间不使用空格字符。我如何将一段中文文本标记化为词?
我的搜索发现这是一个比较复杂的问题,因此我想知道是否有现成的解决方案,可通过 Python 或其他任何语言的 API 解决此问题。这一定是一个普遍存在的问题,因为任何面向亚洲语言的搜索引擎都需要克服这个问题才能提供相关结果。
我尝试使用谷歌进行搜索,但我甚至不确定这种标记化称为什么,所以我的搜索结果没有找到任何东西。也许只需指点一下方向就可以帮助我。

1
还要检查已删除答案中提供的链接:http://alias-i.com/lingpipe/demos/tutorial/chineseTokens/read-me.html - Niklas B.
1
@Joel:嗯,我不确定。引用:“我想把一个句子分成一个单词列表。” 你说得对,OP自己的解决方案并没有真正解决他所问的具体问题。他只是将“单词”和“字符”视为同义词,这似乎不适用于中文。无论如何,那里的答案可能很有趣。 - Niklas B.
2
考虑到我不会说任何一种语言(等一下,拉丁语理论上应该算!),这是猜测,但似乎太模糊了,无法用硬性规则解决。我认为需要使用一些自然语言处理库。或者采用后缀树形式的字典简单解决 - 这应该很容易,尽管不知道在实践中效果如何。 - Voo
1
@Junuxx:在这个问题中:“每个汉字/字符都有对应的Unicode,并且在屏幕上显示为单独的单词/字符。”,“所以很明显Python没有问题告诉单词/字符的边界。我只需要将这些单词/字符放入列表中。”如果您查看OP自己的答案,就会变得更清晰,他建议只需在字符串上使用list即可。 - Niklas B.
显示剩余4条评论
1个回答

4
语言分词是自然语言处理(NLP)的关键方面。这对于大型公司和大学来说是一个巨大的话题,并且已经成为许多博士论文的主题。
我刚刚向您的问题提交了编辑,添加了“nlp”标签。建议您查看“nlp”标签的“关于”页面。您会找到链接到网站,例如基于Python的tokenizer的自然语言工具包
您还可以在Google上搜索类似于:“language tokenization” AND NLP的术语。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接