【发布时间】:2015-05-30 10:15:48
【问题描述】:
我有一些不同语言的文本,并且可能存在一些拼写错误或其他错误,我想检索它们自己的词汇。总的来说,我对 NLP 没有经验,所以也许我用了一些不当的词。
词汇是指单一语言的单词集合,其中每个单词都是唯一的,并且不考虑性别、数字或时态的变化(例如 think、thinks 和 thought 都是考虑 think)。
这是主要问题,所以让我们将其简化为一种语言的词汇检索,例如英语,并且没有错误。
我认为(至少)有三种不同的方法,也许解决方案包括它们的组合:
- 在数据库中搜索相互关联的单词。因此,我可以搜索 thought(考虑动词)并阅读相关信息,即 thought 是 think 的变形
- 通过处理变形形式来计算单词的“基本形式”(没有变形的单词)。也许可以用词干来完成?
- 通过任何 API 使用服务。是的,我也接受这种方法,但我更愿意在本地进行
对于第一个近似值,算法没有必要区分名词和动词。例如,如果在文本中有像名词和动词一样的单词thought,则可以认为它在第二次匹配时已经出现在词汇表中。
我们减少了检索英文文本词汇的问题,没有错误,不考虑单词的标签。
关于如何做到这一点的任何想法?还是只是一些提示?
当然,如果您对这个问题还有其他限制(错误和多语言,不仅是印欧语言)有任何建议,我们将不胜感激。
【问题讨论】:
-
您可以使用维基词典作为您的首选方法
-
@VsevolodDyomkin 感谢您的关注。我发现维基词典没有一套严格的信息规则。它有一些指导方针,但这些不能保证定义的结构(如Entry layout explained, Flexibility 中所述)。你知道其他结构严格的数据库吗?
-
是的,维基词典是半结构化的,但您仍然可以从维基词典定义中提取单词形式(这里有一些示例代码如何处理它们 - lisp-univ-etc.blogspot.com/2013/06/…,但您也可以查看不同的工具,例如wiktionary-to-mysql、wiktionary-to-redis 或 wiktionary-to-dbpedia)
-
@VsevolodDyomkin 链接给出 404
-
看起来应该是lisp-univ-etc.blogspot.com/2013/06/…(我看不出有什么区别,但这个对我有用吗?)
标签: nlp vocabulary