我已经尝试过PorterStemmer和Snowball,但两个都不能用于所有单词,缺少一些非常常见的单词.
我的测试词是:" 猫跑仙人掌仙人掌仙人掌社区社区 ",两者都不到一半.
也可以看看:
我什么时候使用?
另外...... NLTK的词形还原取决于词性?如果它是不是更准确?
自然语言处理(NLP),尤其是英语,已经发展成为如果存在"完美"的引理词,词干将成为一种古老技术的阶段.这是因为词干分析器将单词/标记的表面形式改变为一些无意义的词干.
然后,"完美"变形器的定义是值得怀疑的,因为不同的NLP任务需要不同级别的词形还原.例如,在动词/名词/形容词形式之间转换单词.
词干
[in]: having
[out]: hav
Run Code Online (Sandbox Code Playgroud)
Lemmatizers
[in]: having
[out]: have
Run Code Online (Sandbox Code Playgroud)
所以问题是,英语词干器今天有用吗?因为我们有大量的英语词汇化工具
如果不是,那么我们应该如何着手构建强大的lemmatizers可以取nounify,verbify,adjectify和adverbify
预处理?
如何将词形还原任务轻松扩展到与英语具有相似形态结构的其他语言?
我想在python中使用wordnet lemmatizer并且我已经知道默认的pos标签是NOUN并且它没有为动词输出正确的引理,除非明确指定了pos标签作为VERB.
我的问题是,准确执行上述词形还原的最佳镜头是什么?
我做了pos标记使用nltk.pos_tag,我迷失了将树库pos标签集成到wordnet兼容的pos标签.请帮忙
from nltk.stem.wordnet import WordNetLemmatizer
lmtzr = WordNetLemmatizer()
tagged = nltk.pos_tag(tokens)
Run Code Online (Sandbox Code Playgroud)
我得到NN,JJ,VB,RB的输出标签.如何将这些更改为wordnet兼容标签?
我还需要nltk.pos_tag()使用带标记的语料库进行训练,还是可以直接在我的数据上进行评估?
我有一些法语文本,我需要以某种方式处理.为此,我需要:
据我所知,NLTK中的wordnet lemmatizer只适用于英语.当我给它"voudrais"等时,我想要一些可以返回"vouloir"的东西.由于撇号,我也无法正确标记.任何指针都将非常感激.:)
Word2vec似乎主要是针对原始语料库数据进行培训.然而,词形还原是许多语义相似性任务的标准预处理.我想知道是否有人在训练word2vec之前有使词库语法化的经验,以及这是否是一个有用的预处理步骤.
这个问题可能是R或python中的Lemmatizer的复制品(am,are,is - > be?),但是我再次添加它,因为前一个关闭它说它太宽泛而且它唯一的答案不是高效(因为它为此访问一个外部网站,这太慢了,因为我有非常大的语料库来找到lemmas).因此,这个问题的一部分将与上述问题类似.
根据维基百科,词形还原定义为:
语言学中的Lemmatisation(或词形还原)是将单词的不同变形形式组合在一起的过程,以便将它们作为单个项目进行分析.
一个简单的谷歌搜索R中的词形还原只会指向R 的包wordnet.当我尝试这个包期望c("run", "ran", "running")输入到词形化函数的字符向量时c("run", "run", "run"),我看到这个包只提供类似grepl功能的功能通过各种过滤器名字和字典.
wordnet包中的示例代码,最多提供以"car"开头的5个单词,因为过滤器名称解释了自己:
filter <- getTermFilter("StartsWithFilter", "car", TRUE)
terms <- getIndexTerms("NOUN", 5, filter)
sapply(terms, getLemma)
Run Code Online (Sandbox Code Playgroud)
以上不是我正在寻找的词形还原.我正在寻找的是,使用R我想找到的话,真正的根源:(对于例如,从c("run", "ran", "running")到c("run", "run", "run")).
我正在为ORM准备一些表名,我想将多个表名转换为单个实体名.我唯一的问题是找到一个可靠的算法.这就是我现在正在做的事情:
有谁知道更好的算法?
我是新手,知道spacy并且我想使用他的lemmatizer功能,但我不知道如何使用它,就像我进入单词串,它将返回具有基本形式单词的字符串.比如'words'=> word,'did'=>'do',谢谢.
最近我接触了NLP,我尝试使用NLTK和TextBlob来分析文本.我想开发一个分析旅行者评论的应用程序,因此我必须管理很多用不同语言编写的文本.我需要做两个主要操作:POS标记和词形还原.我已经看到在NLTK中有可能为这样的句子标记化选择正确的语言:
tokenizer = nltk.data.load('tokenizers/punkt/PY3/italian.pickle')
Run Code Online (Sandbox Code Playgroud)
我还没有找到用不同语言设置POS Tagging和Lemmatizer语言的正确方法.如何为非英语文本(如意大利语,法语,西班牙语或德语)设置正确的语料库/词典?我也看到有可能导入"TreeBank"或"WordNet"模块,但我不明白我如何使用它们.否则,我在哪里可以找到各自的语料库?
你能给我一些建议或参考吗?请注意我不是NLTK的专家.
非常感谢.
lemmatization ×10
nlp ×7
nltk ×5
python ×5
stemming ×2
wordnet ×2
algorithm ×1
gensim ×1
inflection ×1
pos-tagger ×1
r ×1
spacy ×1
word2vec ×1