Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过语法检查(Python)从一组可能性中选择最流畅的文本 一些背景_Python_Nlp_Grammar_Nltk_Linguistics - Fatal编程技术网

通过语法检查(Python)从一组可能性中选择最流畅的文本 一些背景

通过语法检查(Python)从一组可能性中选择最流畅的文本 一些背景,python,nlp,grammar,nltk,linguistics,Python,Nlp,Grammar,Nltk,Linguistics,我是佛罗里达新学院的文学系学生,目前正在从事一项雄心勃勃的创意项目该项目面向诗歌的算法生成。它是用Python编写的。我的Python知识和自然语言处理知识只是通过互联网自学的。我已经用这个东西工作了大约一年,所以我不是无助的,但是在这个项目的各个方面我都遇到了困难。目前,我正进入开发的最后阶段,遇到了一些障碍 我需要实现某种形式的语法规范化,这样输出的结果就不会像穴居人说的不共轭/屈折。大约一个月前,一些友好的人通过使用ngram语言建模器来实现这一点,基本上——但我正在寻找其他解决方案,因为

我是佛罗里达新学院的文学系学生,目前正在从事一项雄心勃勃的创意项目该项目面向诗歌的算法生成。它是用Python编写的。我的Python知识和自然语言处理知识只是通过互联网自学的。我已经用这个东西工作了大约一年,所以我不是无助的,但是在这个项目的各个方面我都遇到了困难。目前,我正进入开发的最后阶段,遇到了一些障碍

我需要实现某种形式的语法规范化,这样输出的结果就不会像穴居人说的不共轭/屈折。大约一个月前,一些友好的人通过使用ngram语言建模器来实现这一点,基本上——但我正在寻找其他解决方案,因为NLTK的NgramModeler似乎不适合我的需要。(也提到了词性标注的可能性,但考虑到我的业余性,我的文本可能太零碎和奇怪,难以实现这样的功能。)

也许我需要像AtD这样的东西,但希望不那么复杂 我想我需要像或那样工作的东西,但这两个似乎都不完全正确。Queequeg可能不太合适——它是在2003年为Unix编写的,我一辈子都无法在Windows上运行它(我已经尝试了所有方法)。但我喜欢它所检查的是正确的动词变位和数字一致性

另一方面,AtD更为严格,提供了比我需要的更多的功能。但我似乎无法让它发挥作用。(我从AtD服务器上收到502个错误,我确信很容易修复,但我的应用程序将联机,我宁愿避免依赖其他服务器。我自己无法运行AtD服务器,因为“服务”的数量太多了。)我的应用程序将需要我的web主机,这已经威胁到以较低的成本托管此应用程序时会出现问题。)

我想避免的事情 自己构建Ngram语言模型似乎不适合这项任务。我的应用程序抛出了大量未知词汇,扭曲了所有结果。(除非我使用的语料库太大,以至于我的应用程序运行速度太慢,否则应用程序需要非常快速。)

严格检查语法对这项任务来说是不合适的。语法不需要完美,句子也不需要比使用ngrams生成的类似jibberish的英语更合理。即使是jibberish,我也只需要强制执行动词变位、数字一致,以及删除额外的冠词之类的操作

事实上,我甚至不需要任何纠正的建议。我想我所需要的是,在一组可能的句子中,总结出每个句子中似乎出现了多少错误,这样我就可以根据它们的分数进行排序,并选择语法问题最少的一个

一个简单的解决方案?通过检测明显错误来评估流利性 如果有一个脚本可以处理所有这些,我会欣喜若狂(我还没有找到)。当然,我可以为我找不到的东西编写代码;我正在寻找关于如何优化我的方法的建议

假设我们已经有了一小段文字:

existing\u text=“旧河”

现在让我们假设我的脚本需要找出动词“to bear”的下一个变化。我愿意接受关于这一惯例的建议但我主要需要第2步的帮助,即通过统计语法错误来评定流利程度:

  • 使用中的动词变位方法得出该动词的所有变位<代码>[‘轴承’、‘轴承’、‘轴承’、‘孔’、‘轴承’]
  • 迭代各种可能性,(粗略地)检查由
    现有文本+“”+可能性产生的字符串的语法(“老河熊”、“老河熊”等)。统计每个构造的错误计数。在这种情况下,唯一出现错误的建筑似乎是“老河熊”
  • 收尾应该很容易。。。在错误计数最低的可能性中,随机选择

  • 首先,非常酷的项目

    我找到了一个新的。我从未使用过它,但文档声称它可以作为服务器运行。java和监听端口基本上都应该在任何地方得到支持

    我刚开始学习NLP,有CS背景,所以我不介意深入了解更多细节,以帮助您集成您决定使用的任何内容。请随时询问更多详细信息。

    请与检查语法 链接语法简介 由Davy Tempeley、Daniel Sleator和John Lafferty开发的链接语法是英语的句法分析器:“给定一个句子,系统为其指定一个句法结构,该结构由一组连接词对的标记链接组成。语法分析器还生成一个句子的“成分”表示(显示名词短语、动词短语等)你可以和

    几年前,AbiWord。他们解释说,AbiWord使用链接语法检查语法。我不知道AbiWord实际上如何执行语法检查的复杂性,但我在关于语法检查的问答中读到了基本方法(我现在失去了链接).与我接触过的其他解析器不同,链接语法在句子语法形式不正确时会产生非常不同的结果:它无法找到语法错误句子的完整链接

    你可以用:
    输入句子“这是我买狗的人”产生1个链接,而“这是我买狗的人”不产生完整的链接

    这并不像我问的那样“计算”错误的数量