我们可以使用任何python库将缩写转换回来吗?
如what's
至what is
,it's
至it is
等。
我想用它来预处理原始句子。
实际上,我也对应该执行此操作还是仅删除'
并将what's
转换为whats
感到困惑。否则,无论如何,is
将在后续步骤中被删除为停用词。
另一方面,我们应该将whats
和what
视为lemma
吗?
还是应该使用词干分析器来切断s
?
此外,我是NLP的初学者,所以如果你们能向我推荐一些有关单词标记化的标准数据预处理的材料或教程,那就更好了,比如我们完全需要执行哪些步骤?>
顺便说一句,我认为这里的缩写不是正确的术语,但我也不擅长英语。因此,请介绍一下我们用于what's
,how's
等的正式的NLP或语言学术语。
谢谢。
答案 0 :(得分:2)
通常,诸如Spacy和NLTK之类的NLP库可以很好地完成将"It's"
之类的令牌化转换为["It", "'s"]
的过程。但是将类似what's
的内容转换为["what", "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在设置这些规则方面做了大量工作。 但是我不确定是否值得这样做,也许这不会对您手头的任务产生重大影响。