可以判断一个字符串是否是英文句子的算法?

数据挖掘 机器学习 nlp
2021-10-01 06:51:18

特别是,我正在寻找可以区分完整句子和类似句子的语法结构(如从句和短语)的东西。如果共享具有此功能的库也将非常有帮助,但即使是指向论文的链接也将不胜感激。

例如-我希望为以下字符串返回“False”:

“通过每日醋栗,”

“等雨停”

'查看更多请返回网站主页。'

'* * *'

我希望为以下内容返回“True”:

“这是一个完整的句子。”

“不幸的是,我认为不会有半条命3。”

谢谢!

3个回答

有一个python库

https://pypi.org/project/langdetect/

这个领域叫做“语言检测”,非常活跃。

要考虑所有示例,请首先检查文本是否完全是英文(其他人暗示的解决方案)。

如果是,那么有一个问题是什么构成了“完整的英语句子”。

从您的(两个)样本中,可以推断出应该有一个与它相关的有限形式的主语和动词。为了引起对一些“边缘情况”的关注:

“去!”

“完毕!”

要检查主谓是否存在,您可以尝试解析 - 确定文本的句法结构,但由于这仍然是一项棘手的任务,您可以使用词性标记(实际上是形态分析加消歧,但 PoS 标记使其成为名称用于任务)。例如,SpaCy 这样做https://spacy.io/usage/linguistic-features (它实际上也进行依赖解析,但错误率会高于使用“仅”PoS 标记)。

然后,您可以检查输出是否存在有限形式的动词 - SpaCy 标记集 ( https://spacy.io/api/annotation#pos-tagging ) 中的 VBZ 中的 VBD、VBP。

如前所述,已经有相关的库,但是如果你想更深入地研究,我建议你看看一个叫做 Naive Bayes 的东西。

这是一个任何人都可以理解的简单算法,如果这引起了你的注意并且你想要更复杂的东西,那么搜索 RNN 和 LSTM ......

玩得开心。