Python中文
首页
教程
问答
标签
搜索
登录
注册
通过语法检查(Python)从一组可能性中选择最流畅的文本
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<h2>一些背景</h2> <p>我是佛罗里达新学院的文学系学生,目前正致力于一个雄心勃勃的创意项目。<strong>该项目面向诗歌的算法生成。它是用Python编写的。我的Python知识和自然语言处理知识只来自于通过互联网自学。这一年,我一直在为一个项目而努力,但我一直在努力。目前,我正在进入开发的最后阶段,遇到了一些障碍。在</p> <p><strong>我需要实现某种形式的语法规范化,这样输出的结果就不会像没有变化或变化的穴居人说话一样出来。</strong>大约一个月前,一些友好的人通过使用一个<strong>ngram语言建模器</strong>,基本上——但我正在寻找其他解决方案,看来NLTK的ngramodeler不适合我的需要。(也提到了词性标注的可能性,但鉴于我的业余爱好,我的文本可能过于零碎和陌生,不容易实现。)</p> <h2>也许我需要AtD之类的东西,但希望不那么复杂</h2> <p><strong>我认为需要一些类似<a href="http://afterthedeadline.com/" rel="nofollow noreferrer">After the Deadline</a></strong>或<a href="http://queequeg.sourceforge.net/index-e.html" rel="nofollow noreferrer">Queequeg</a>的东西,但这两个似乎都不完全正确。Queequeg可能不太适合——它是2003年为Unix编写的,我一辈子都无法让它在Windows上运行(已经尝试了所有的方法)。但我喜欢它检查的只是动词的正确变化和数字的一致性。在</p> <p>另一方面,AtD更严格,提供的功能比我需要的更多。但我似乎不能让它工作。(我从AtD服务器上收到502个错误,我确信很容易修复,但我的应用程序将联机,我宁愿避免依赖其他服务器。我自己无法负担运行AtD服务器的费用,因为我的应用程序需要的web主机的“服务”数量已经威胁到以低廉的成本托管此应用程序的问题。)</p> <h2>我想避免的事情</h2> <p><strong>我自己构建Ngram语言模型似乎不适合这项任务。</strong>我的应用程序抛出了大量未知词汇,扭曲了所有结果。(除非我使用的语料库太大,以至于对我的应用程序来说运行太慢了——否则应用程序需要非常快。)</p> <p><strong>严格检查语法对这项任务来说都不合适。</strong>语法不需要完美,句子也不必比使用ngrams生成的那种像jibberish这样的英语更敏感。即使这是无聊的,我只需要加强动词的变化,数字一致,并做一些事情,如删除额外的冠词。在</p> <p>事实上,我甚至不需要任何建议来纠正。我想我所需要的就是把一组可能的句子中每个句子中似乎出现的错误进行统计,这样我就可以根据它们的分数进行排序,然后选出语法问题最少的一个。在</p> <h2>一个简单的解决方案?通过发现明显的错误来评分流畅性</h2> <p>如果有一个脚本可以处理所有这些,我会非常高兴(我还没有找到一个)。当然,我可以为找不到的东西编写代码;我正在寻找如何优化我的方法的建议。在</p> <p>假设我们已经安排了一小部分文本:</p> <p><code>existing_text = "The old river"</code></p> <p>现在让我们假设我的脚本需要弄清楚动词“to bear”的下一个词形变化。我愿意接受关于这项工作的建议。<strong>但我主要需要第二步的帮助,通过计算语法错误来评定流利程度:</p> <ol> <li>使用<a href="http://nodebox.net/code/index.php/Linguistics" rel="nofollow noreferrer">NodeBox Linguistics</a>中的动词变化方法来获得这个动词的所有变化;<code>['bear', 'bears', 'bearing', 'bore', 'borne']</code>。在</li> <li>迭代各种可能性,(浅显地)检查由<code>existing_text + " " + possibility</code>(“old river”)产生的字符串的语法熊”,“旧河熊”等)。记录每种结构的错误计数。在这种情况下,唯一引起错误的建筑,似乎就是“老河熊”。在</li> <li>收工应该很容易。。。在错误数最少的可能性中,随机选择。在</li> </ol>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>首先,非常酷的项目。在</p> <p>我找到了一个<a href="http://www.languagetool.org/usage/" rel="nofollow">java grammar checker</a>。我从未使用过它,但文档声称它可以作为服务器运行。java和监听端口应该在任何地方都得到支持。在</p> <p>我刚进入NLP与一个CS背景,所以我不介意更详细地帮助你整合你决定使用的任何东西。请随意询问更多细节。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
6 回答
如何添加表示整数的擦边字符串?
1 回答
如何添加要在Bokeh中使用的新font.ttf文件?
5 回答
如何添加要显示的矩阵XY轴编号和XY轴
3 回答
如何添加计数?
9 回答
如何添加计数器函数?
8 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
3 回答
如何添加计数器来跟踪while循环中的月份和年份?
9 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
1 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
8 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
6 回答
如何添加评论拉梅尔亚姆
5 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
1 回答
如何添加谷歌地点自动完成到Flask?
10 回答
如何添加超时、python discord bot
8 回答
如何添加超过1dp的检查
10 回答
如何添加距离方法
1 回答
如何添加跟随游戏的敌人精灵
2 回答
如何添加路径以便python可以找到程序?
8 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答