问题标签 [lemmatization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 用于词形还原的 Java 工具
我需要对英语进行词形还原,包括形容词:
例如墨西哥 --> 墨西哥
你能推荐任何工具,最好是Java。
我想强调我正在寻找词形还原,而不是词干。
nlp - 英语词形还原数据库?
您是否知道任何足够大的 lemmatizer 数据库可以为以下示例词返回正确结果:
Wordnet 的形态分析器是不够的,因为它给出了以下不正确的结果:
python - Nltk 中的 WordNetLemmatizer 可以词干吗?
我想用Wordnet
. 是否wordnet
具有词干提取功能?我将这个导入用于我的词干,但它没有按预期工作。
php - 使用 wordnet 获取单词的引理
如何使用 Wordnet 获得给定单词的引理。我似乎无法在 wordnet 文档中找到我想要的东西。 http://wordnet.princeton.edu/wordnet/man/wn.1WN.html
例如,对于“books”这个词,我想得到“book”,ashes => ash,booking => book,apples => apple .... 等。
我想在命令行中使用 wordnet 来实现这一点,但我找不到准确的选项来检索这种情况。
一个 php 解决方案也会有很大帮助,因为我最初打算使用 wordnet php API,但他们网站上的当前 API 似乎无法正常工作。
python - nltk lemmatizer 不知道如何处理美国人这个词
跑了以下:
两者都只是返回他们的论点。我希望美国人减少为美国人。有人知道如何做到这一点吗?
我假设我必须修改 lemmatizer 使用的任何内部字典。它是否正确?有人知道更好的方法吗?
谢谢!
java - 避免字典查找的高效 Lemmatizer
我想将'eat'之类的字符串转换为'eating','eats'。我搜索并找到了词形还原作为解决方案,但是我遇到的所有词形还原工具都使用词表或字典查找。是否有任何可以避免字典查找并提供高效率的词形还原器,可能是基于规则的词形还原器。是的,我不是在寻找“词干”。
java - 为单词词形还原和类似任务创建自己的规则的工具
我正在做很多自然语言处理,但要求有点不寻常。我经常得到类似于词形还原的任务——给定一个词(或只是一段文本),我需要找到一些模式并以某种方式转换这个词。例如,我可能需要纠正拼写错误,例如给定单词“eatin”,我需要将其转换为“eating”。或者我可能需要将单词“ahahaha”、“ahahahaha”等转换为“ahaha”等。
所以我正在寻找一些通用工具,允许为这种情况定义转换规则。规则可能如下所示:
那就是我需要能够在右侧使用从左侧捕获的模式。
我与完全不懂编程的语言学家一起工作,所以理想情况下,这个工具应该使用外部文件和简单的规则语言。
我在 Clojure 中做这个项目,所以理想情况下这个工具应该是一个 JVM 语言(Java、Scala、Clojure)的库,但其他语言或命令行工具也可以。
有几个非常酷的 NLP 项目,包括GATE、Stanford CoreNLP、NLTK等,我并不是所有这些项目的专家,所以我可能会错过我需要的工具。如果是这样,请告诉我。
请注意,我正在使用多种语言并执行非常不同的任务,因此具体语言的具体词形还原器、词干分析器、拼写错误校正器等不符合我的需求——我真的需要更通用的工具。
UPD。看来我需要提供一些我需要的更多细节/示例。
基本上,我需要一个用某种正则表达式(类似于 Java 的String.replaceAll()
)替换文本的函数,但有可能在替换字符串中使用捕获的文本。例如,在现实世界的文本中,人们经常重复字符以强调特定的单词,例如,有人可能会写“This film is sooooo boooring...”。我需要能够仅用单个字符替换这些重复的“oooo”。所以可能会有这样的规则(语法类似于我在本文前面使用的):
也就是说,替换以某些字符 ( chars1
) 开头、至少 3 个字符并可能以其他字符 ( chars2
) 结尾的单词,但字符串相似,但只有一个 . 这里的关键是我们抓住规则的左侧并在右侧使用它。
python - 构建词形还原器:速度优化
我正在用 python 构建一个词形还原器。由于我需要它实时运行/处理相当大量的数据,因此处理速度至关重要。数据:我有所有可能的后缀,这些后缀链接到它们可以组合的所有单词类型。此外,我还有与它们的 wordtype(s) 和 lemma(s) 相关联的引理形式。该程序将一个单词作为输入并输出其引理。word = lemmafrom + suffix
例如(注意:虽然示例是用英语给出的,但我并没有为英语构建词形还原器):
词语: 禁止
引理形式:禁止
后缀:ing
引理:禁止
我的解决方案:
我已将数据转换为(嵌套)字典:
1) 找到所有可能的后缀和它们所链接的单词类型。如果最长可能的后缀是 3 个字符,程序会尝试将 'ing'、'ng'、'n' 匹配到 suffixdict 中的键。如果键存在,则返回一个值(一组单词类型)。
2)对于每个匹配的后缀,从字典中搜索引理形式。如果 lemmaform 存在,则返回 wordtypes。
3) 最后,程序尝试与步骤 1) 和 2) 中产生的词型相交,如果相交成功,则返回该词的引理。
我的问题:从速度的角度来看,我的问题是否有更好的解决方案?(忽略在字典中保留常用词和引理的选项)帮助很大。
mysql - 将词形还原集成到 Sphinx
我有一个 MySQL 数据库,里面有几十万个文本文档,我需要对这些文本文件执行搜索。我决定使用 Sphinx 来实现搜索功能。但是,我需要用户能够找到所有不同形式的搜索词。我在 python 中编写了一个能够产生相当准确结果的 lemmatizer,我的问题是:如何将它与 Sphinx 集成?帮助很大。
编辑:由于还没有答案,我想补充一点,“这真的很难”或“它不能完成”之类的评论也将受到重视。如果我的想法有问题,很高兴知道:)
python - Lemmatize 法语文本
我有一些法语文本,需要以某种方式处理。为此,我需要:
- 首先,将文本标记为单词
- 然后对这些词进行词形还原以避免多次处理同一个词根
据我所知,NLTK 中的 wordnet lemmatizer 仅适用于英语。当我给它“voudrais”等时,我想要一些可以返回“vouloir”的东西。由于撇号,我也无法正确标记。任何指针将不胜感激。:)