python - NLP:检查检测到的句子是否是完整的句子

标签 python nlp nltk spacy grammar

在我的 NLP 项目中,我构建了自己的模型来识别 PDF 文档中的句子。现在我想检查我提取的句子是否是完整的句子。在我的研究过程中,我已经遇到了 this question ,其中提供的解决方案允许相当多的误报。有没有人可以告诉我如何检查一个句子是否是一个完整的句子?

最佳答案

这是一个非常重要的问题,因此没有一种方法适用于所有情况。您还应该考虑到,无论您使用什么解析器,都可能合并或拆分原始文档中的完整句子,但在解析后它们就不再是完整的句子了。

通常是纯基于规则的方法的替代方法:您可以使用在 CoLA (Corpus of Linguistic Acceptability) 任务上预训练的模型。这些模型试图将句子/文档分类为“语言可接受”和“语言 Not Acceptable ”的类别。

在 huggingface 的模型中心有几个预训练的转换器模型,例如这个推理 API 是 Facebook 的 RoBERTa 模型的微调版本:

Correct Sentence

Incorrect Sentence

不过,当涉及到要点/独立半句等时,您应该看看模型是如何训练的,因为有些分数乍一看可能会令人惊讶。

您可能希望将模型结果与基于规则的方法结合起来,例如:“如果分数为 0.95 或更高并且句子至少有 4 个词并且以 . 结尾,则该句子是可以接受的?!。”。您可以看到您的模型 + 基于规则的方法组合吐出了哪些句子,并不断修改规则,直到结果令您满意为止。

关于python - NLP:检查检测到的句子是否是完整的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71590785/

相关文章:

python - NLTK 词性缩写引用

machine-learning - 使用我自己的训练示例训练 spaCy 现有的 POS 标记器

python - Python 中的 Cholesky 实现 - 求解 Ax=b

python - 向后打印阶乘?

python - 文件系统中的 ACID 事务

python - 将 stanford pos tagger 导入 nltk 时遇到问题

python - 当我尝试导入 TextBlob 时,我得到 "ImportError: cannot import name compat"。这是什么意思?我该如何修复它?

javascript - 如何用python获取webbrowser的源码

python - 在 WordsNet (Python) 中找到给定多个单词的最低常见上位词

python - 在 Python 中从 API 对象中提取数据