如何评价(草稿)句子的质量?

时间:2018-11-11 07:05:14

标签: python-3.x parsing nlp nltk

我正在Python3中运行一个抓取和处理例程-但是我得到的某些句子是垃圾-我想拒绝这些但无法弄清楚该怎么做。

我在NLTK中使用POS标记和分块,但这似乎并不能帮助我识别无效的句子。在垃圾“句子”中,NN,VB等的数量似乎与良好的数量没有什么不同。

我想我只是在寻找一种简单的方法来对句子的语法评分,并拒绝带有过多“错误”的句子。我尝试使用grammar_check,但AWS Lambda不喜欢运行它。初始化后,我立即收到“连接被拒绝”错误。 (为了在AWS Lambda上运行,NLTK也需要被“欺骗”,但我发现了如何做到这一点)。

示例: 良好:曼联大老板穆里尼奥已告诉他的球员们“长大”,以便在他们击败纽卡斯尔伯恩茅斯和尤文图斯的比赛复出后在比赛中尽早停止让步

垃圾:[最新打出的成绩为42平局8曼彻斯特etihad体育场曼彻斯特etihad曼彻斯特曼彻斯特trafford曼彻斯特曼彻斯特etihad体育场曼彻斯特没有内容可利用的城市在曼彻斯特德比赢得外部联系城市平局fc巴塞尔后重返训练场ucl 16回合外部报告:联手1-2个城市外部链接城市获胜惊险德比移动11点

谢谢您的建议。

1 个答案:

答案 0 :(得分:1)

我对此有个开始的答案,但这不是一个简单或直接的“像这样做”的食谱。

我正在尝试更详细地研究的方法相当于对格式正确的句子表达一些限制。您无法枚举语料库中所有可能的噪声,但是您可以使用某些类型的过滤器消除某些类型的噪声,其中的许多过滤器非常容易理解和实现。

例如:

  • 丢弃熵很低的样本
  • 丢弃带有正常英语曲目以外的字符或字符序列的样本
  • 丢弃带有许多重复单词的样本
  • 丢弃带有许多有限动词的样本
    • 我只看了您的一个例子就弄清了最后两个,但是,当然,在没有更多样本或整个语料库的情况下,无法确定这在一般情况下是否可行。

此方法的原型为published in the LREC 2016 proceedings(有帮助的the proceedings是在宽松的CC BY-NC 4.0许可下发布的):abstract,但提交的内容最多为四个页,因此本文必定是非常简短的概述。我的实际资料和脚本在Github上:https://github.com/rcv2/rcv2r1;但是我使用的语料库无法重新分发,所以缺少了一部分。

Appendix A概述了拟议约束的简要目录。