Nlp 如何自动确定文本质量?

Nlp 如何自动确定文本质量?,nlp,Nlp,许多自然语言处理(Natural Language Processing,NLP)算法和库很难处理来自web的随机文本,这通常是因为它们假定的是干净、清晰的文字。我能理解为什么这比解析YouTube评论更容易 我的问题是:给定一段随机的文本,是否有一个过程来确定该文本是否写得好,是否适合在NLP中使用?这些算法的通用名称是什么 我希望有文章、算法或代码库的链接,但我会满足于良好的搜索条件。我没有使用任何工具,但我有一个想法 一个简单的策略是,获取干净的英语文本,找出各种词性标记的直方图,如名词、

许多自然语言处理(Natural Language Processing,NLP)算法和库很难处理来自web的随机文本,这通常是因为它们假定的是干净、清晰的文字。我能理解为什么这比解析YouTube评论更容易

我的问题是:给定一段随机的文本,是否有一个过程来确定该文本是否写得好,是否适合在NLP中使用?这些算法的通用名称是什么


我希望有文章、算法或代码库的链接,但我会满足于良好的搜索条件。

我没有使用任何工具,但我有一个想法

一个简单的策略是,获取干净的英语文本,找出各种词性标记的直方图,如名词、形容词、动词、冠词等

现在,对于示例文本,找出类似的直方图

如果此直方图与基准足够“接近”,则示例文本的质量与原始文本一样好。您可能需要定义“贴近度”参数


语言识别通常采用类似的技术。对于一种语言,将创建一个n-gram配置文件。为示例文本创建了类似的配置文件,并对两个配置文件进行了比较,以找出示例文本成为该语言的可能性。

我不熟悉任何这样做的软件包。这听起来像是一个分类问题,你可以试着通过标记几百个好的和坏的文档,然后从文本中提取特征(拼写正确的单词的百分比,句子的最佳解析概率,谁知道呢)。根据标记的数据,您可以构建一个好/坏分类器,它可能会做一些有用的事情。再说一次,可能不会


您还可以尝试使用可读性度量。通常,它们被用来表示“这篇文章处于四年级阅读水平”,但它们可能会为你的意图提供一些信号。一些例子包括或

“写得好”和“适合NLP”可以一起使用,但不一定要一起使用。对于“适合NLP”的文本来说,它可能应该包含完整的句子,结尾有一个动词和一个点,并且可能应该传达一些含义。一篇文章要写得好,还应该结构良好、连贯、连贯、正确地用名词代替代词等。你需要什么取决于你的应用

一个句子被NLP工具正确处理的可能性通常可以通过一些简单的试探法来估计:它是否太长(根据语言,超过20或30个单词)?太短了?它包含许多奇怪的字符吗?它是否包含URL或电子邮件地址?它有主动词吗?这只是一张清单吗?据我所知,这种过滤没有通用的名称,也没有任何特定的算法——它被称为“预处理”

关于一个写得好的句子:已经做了一些自动评估可读性、衔接和连贯性的工作,例如Milsakaki(and)或Higgins()的文章。这些方法都是基于一种或另一种话语结构理论,如中心理论。这些文章理论性很强,既有定心理论的知识,也有机器学习的知识。尽管如此,这些技术中的一些已经被成功地应用于学生论文的自动评分,我认为这与你正在尝试做的非常相似,或者至少,你可以调整一些想法


尽管如此,我相信在未来几年内,NLP将不得不开发技术来处理与当前标准相比格式不好的语言。网络上有大量非常有价值的数据,完全由您提到的文本组成:youtube评论、聊天信息、twitter和facebook状态信息等。所有这些信息都可能包含非常有趣的信息。那么,谁应该适应呢?用这种方式写作的人还是NLP?

一个简单的尝试是将文本分类为书写良好的文本,或者不使用n-gram语言模型。要做到这一点,您首先需要在一组编写良好的文本上训练一个语言模型。给定一段新的文本,然后您可以在其上运行模型,并且只有在每个单词的复杂度足够低的情况下(即,如果它看起来与编写良好的培训文本非常相似的情况下),才能将其传递给其他下游NLP工具

为了获得最佳效果,您可能应该在文本上训练您的n-gram语言模型,该文本类似于用于训练您正在使用的其他NLP工具的文本。也就是说,如果您使用的是经过培训的newswire,那么您还应该在newswire上培训您的n-gram语言模型

就软件工具包而言,您可以使用它来完成类似的工作,这将是一个很好的起点

然而,另一种解决方案是尝试将您正在使用的任何NLP工具调整为您想要处理的文本。这种方法的一种方法是自我训练,你可以在你想要处理的数据类型上运行你的NLP工具,然后在它们自己的输出上重新训练它们。例如,使用这种技术将最初在《华尔街日报》上培训过的解析器用于生物医学文本的解析。

正如其他人所指出的,“写得好”是一种相当主观的观点。你能做的最好的事情就是建立一个“写得好”和“写得不好”(根据你的标准)文本的语料库。如果您能够创建一个方法以数字形式对它们进行分类(Youtube评论为0.1,堆栈溢出评论为0.9;),您将获得奖励

一旦你做到了这一点,就会有很多选择,但我会推荐这种情况下的统计方法。N-grams可能以简单的相对频率完成这项工作,但我建议您研究马尔可夫模型,尤其是贝叶斯文本分类工具