gpt4 book ai didi

python - 有没有办法使用python从句子中删除专有名词?

转载 作者:太空狗 更新时间:2023-10-30 02:41:21 26 4
gpt4 key购买 nike

是否有任何包可以用来使用 Python 从句子中删除专有名词?

我知道一些软件包,如 NLTK、Stanford 和 Text Blob 可以完成这项工作(删除名称),但它们也删除了很多以大写字母开头但不是专有名词的单词。

此外,我无法拥有名称字典,因为它会很大,并且会随着数据不断填充到数据库中而不断扩展。

最佳答案

如果您只想删除作为专有名词的单个单词,您可以使用 nltk 并标记您的问题句子,然后删除所有带有专有名词标签的单词。

>>> import nltk
>>> nltk.tag.pos_tag("I am named John Doe".split())
[('I', 'PRP'), ('am', 'VBP'), ('named', 'VBN'), ('John', 'NNP'), ('Doe', 'NNP')]

默认标注器使用 Penn Treebank POS tagset它只有两个专有名词标签:NNPNNPS

因此您只需执行以下操作:

>>> sentence = "I am named John Doe"
>>> tagged_sentence = nltk.tag.pos_tag(sentence.split())
>>> edited_sentence = [word for word,tag in tagged_sentence if tag != 'NNP' and tag != 'NNPS']
>>> print(' '.join(edited_sentence))
I am named

现在,作为警告,POS tagging不是 100% 准确,可能会误标记一些模棱两可的词。此外,您不会捕获 Named Entities以这种方式,因为它们本质上是多词。

关于python - 有没有办法使用python从句子中删除专有名词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39634222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com