如何在NLP中转换缩略词

2024-06-01 05:11:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用NLP将缩略语转换回来。
像{}到{},{}到{}等等。
我想用它来预处理原始句子

事实上,我也不知道是应该这样做,还是仅仅删除'并将what's转换为whats。否则,无论如何,is将在后面的步骤中作为停止字删除

另一方面,我们应该考虑^ {CD7>}和^ {CD10>},作为^ {< CD11>}?
或者,我们应该使用词干分析器来切断s

顺便说一句,我不认为缩写是正确的术语,但我的英语也不好。所以,请给我介绍一下我们用于what'show's等的正式NLP或语言学术语


Tags: 分析器nlpis步骤what句子how术语
1条回答
网友
1楼 · 发布于 2024-06-01 05:11:33

通常,像SpacyNLTK这样的NLP库能够很好地完成像"It's"["It", "'s"]这样的标记化转换。但是把像what's这样的东西转换成["what", "is"]更成问题,因为你可以举一些例子,比如“艾米的芭蕾舞工作室”,其中的“'s”不是“is”

您可以映射所有案例(他、我、什么等)并向标记器添加新规则,Spacy允许:

import spacy
from spacy.symbols import ORTH, LEMMA, POS, TAG

nlp = spacy.load("en_core_web_sm")
doc = nlp(u"He's buying that")  # phrase to tokenize
print([w.text for w in doc])  # ['He', "'s", "buying", 'that']

# add special case rule
special_case = [{ORTH: u"He'", LEMMA: u"He", POS: u"PRONOUM"}, {ORTH: u"is"}]
nlp.tokenizer.add_special_case(u"He's", special_case)

# check new tokenization
print([w.text for w in nlp(u"He's buying that")])  # ["He'", "is", "buying", "that"]

这个gist在设置这些规则方面做了大量的工作。 但我不确定这样做是否值得,也许这不会对你手头的任务产生太大影响

相关问题 更多 >