【问题标题】:How to rate quality of a (scraped) sentence?如何评价(刮掉的)句子的质量?
【发布时间】:2020-09-10 16:53:31
【问题描述】:

我正在 Python3 中运行一个抓取和处理例程 - 但我得到的一些句子是垃圾。我想拒绝这些,但不知道该怎么做。

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

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

示例: 好:曼联主帅何塞·穆里尼奥告诉他的球员要“长大”,以便在他们复出战胜纽卡斯尔伯恩茅斯和尤文图斯后,在比赛中尽早停止失球

垃圾:[最新结果为您带来 42 场平局 8 阿提哈德球场曼彻斯特老特拉福德曼彻斯特阿提哈德球场曼彻斯特老特拉福德曼彻斯特阿提哈德球场曼彻斯特无可用内容曼城德比获胜后恢复训练外部链接城市抽签 fc 巴塞尔ucl 16轮外链战报:曼联1-2城 外链城赢惊险德比移11分

【问题讨论】:

  • 你能举一些“好”和“垃圾”句子的例子吗?
  • 感谢您的回复。我编辑了我的原始问题以包含示例。
  • 不幸的是,一个非常简短的示例可能只会带来非常具体的建议。这个特殊的例子似乎表现出大量的重复。所有的“垃圾”都是这样吗?
  • 根据样本,你可以看看单词+词性标签的顺序。例如。连续 5 个 NN 在正常句子中是相当少见的
  • 从每个页面抓取的文本似乎是随机的东西以及段落文本,这可能会随着每个网站而变化。而且网站也会发生变化。您对顺序名词提出了很好的看法,但其他“垃圾”可能并非如此。我一直在寻找一个简单的语法检查,希望它在可能被拒绝的语法检查器上得到如此糟糕的“垃圾”。

标签: python-3.x parsing nlp nltk


【解决方案1】:

我对此有了初步的答案,但这不是一个简单或直接的“这样做”的秘诀。

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

例如:

  • 丢弃熵非常低的样本
  • 丢弃包含英语正常曲目之外的字符或字符序列的样本
  • 丢弃包含许多重复单词的样本
  • 丢弃带有许多有限动词的样本
    • 我只是看你的一个例子就做了最后两个,但当然,如果没有更多样本或你的整个语料库,就无法判断这是否适用于一般情况。

这种方法的原型是published in the LREC 2016 proceedings(有帮助的是,the proceedings 是在宽松的CC BY-NC 4.0 许可下发布的):abstract 但提交的内容被限制在最多四页,所以这篇文章是必要的一个非常简短的概述。我的实际材料和脚本在 Github 上:https://github.com/rcv2/rcv2r1;但是我使用的语料库是不可再分发的,所以缺少一块。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多