首页 > 解决方案 > 确定文本输入的语法有效性

问题描述

我正在寻找某种方法来确定文本输入是否采用有效句子的形式;如果没有,我想向用户提供警告。我想警告用户的输入示例:

” “狗帽可以啊!

“slkj ds dsak”

这似乎是一个难题,因为语法通常来自文本库,而提供的句子输入中的单词可能不会出现在语法中。似乎解析器可能会假设文本输入由有效的英语单词组成。(只是我在玩弄斯坦福 NLP 的 GUI 工具时的简短总结)。我的问题如下:

  1. 是否有一些工具可以扫描文本输入并确定它是否由有效的英文单词组成,或者至少提供一个概率?如果没有,我可以写这个,只是想知道它是否已经存在。我认为这将是确定语法正确性之前的第一步。
  2. 我的理解是,通过尝试解析句子并查看是否可能来确定句子是否在语法上正确。那准确吗?当遇到歧义时,是否有概率解析器提供一定程度的置信度?(例如,无法识别的专有名词)
  3. 我犹豫要问最后一个问题,因为我在十多年前看到有人问过这个问题,但是关于是否有用于 NLTK 的基本的、现成的语法的任何更新?我知道英语并不简单,但我真的只是想解析相对简单的单句输入。

谢谢!

标签: nlpnltkstanford-nlp

解决方案


一个起点是在语言可接受性语料库(CoLA) 任务上训练的分类模型。最近有几篇关于如何从 HuggingFace (python) 微调 BERT 模型以完成此任务的博客文章。这是一篇这样的博客文章。您还可以在 HuggingFace 模型动物园中找到针对各种 BERT 风格的 CoLA 已经微调的模型。


推荐阅读