7年前关闭。
我必须为我的计算语言学课程做最后的项目。我们一直在使用OCaml,但我也熟悉Java。我们研究了形态学,FSM,收集解析树,CYK解析,尝试,下推自动机,正则表达式,形式语言理论,某些语义等。
这是我提出的一些想法。您有什么觉得很酷的东西吗?
脚本会扫描Facebook线程中令人讨厌的评论,并使用JS静默隐藏它们(显然,这需要用户的同意才能运行)
使用语义,语法,标点符号用法和其他度量标准对文章进行分析,以尝试“指纹化”作者。它可以用于确定同一作者是否可能撰写了两本作品。或者,某人可以写一些他随着时间的推移所做的工作,并了解他的风格如何变化。
聊天机器人(不太有趣/原创)
我可能被允许使用预先存在的库来执行此操作。 OCaml是否存在?没有库/工具包,以上三个想法可能是不可行的,除非我将其限制在非常特定的领域。
下层思路:
在有限状态机上的操作-最小化,组成换能器,证明FSM处于最小可能状态。我对图论非常感兴趣,因此与FSM的任何重叠都可能是一个探索的好地方。 (我还能对FSM做什么?)
正则表达式很酷吗?
CYK很棒吗?
还有其他人有什么好主意吗?
*令人讨厌的定义为具有以下初中生典型的某些模式。这个词的模糊性不是问题。为了功劳,我可以定义我想要的任何东西并以此为目标。
最佳答案
令人讨厌的语言过滤-我认为这将简化为类似于垃圾邮件过滤的过程。也就是说,计算一组或多或少“令人讨厌”的单词的频率。除非您还使用其他信息源(例如,发送方和接收方之间可能共享的社交链接的结构),否则听起来似乎您无权做任何特别聪明的事情。另一方面,在线欺凌是一件非常严肃的事情,您可以打赌Facebook / Myspace,其他社交网站也非常在意解决它。
文体分析-已经以各种形式进行了一些工作,通常以作者分析为名。 Shlomo Argamon在这方面做了很多工作,您可能可以从他的论文中的参考文献中发现更多内容。描述作者的最佳方法之一是了解他们使用一组停用词(也称为功能词)的分布情况,例如'and','but','if'等。我认为还有很多在此领域中进行新的有趣研究的范围-对互联网数据进行作者分析是一个难题-但还有很多失败的范围。
聊天机器人-没错,这是一个非常标准的项目。衡量成功/失败的难度也很大。我认为,如果该项目是一个具有某种目的的聊天机器人,例如在有限的领域中回答问题,那么它将更加引人注目,但这很难做好。
其余部分确实太含糊,无法对此发表任何评论,对不起。
我在OCaml中没有了解任何NLP库,它不是一种特别流行的编程语言。但是,我确实知道Ocaml中的一个名为MEGAM的机器学习库,该库是由NLP很好的研究者Hal Daume编写的,已经用于NLP任务。我觉得搞清楚MEGAM并用它来执行一些NLP任务可能是一个太大的项目。
其他一些想法:
Sentiment Analysis-一个非常新潮的研究领域。从为文档打分积极/消极到提取特定主题并为每个主题生成情感分数,您都可以使此任务变得容易或困难。
Coreference/Anaphora resolution-一项艰巨的任务,但非常重要。一些方法使用图形表示法(如果它们共同引用,则每个提述是一个在其间具有边的节点)来强制执行诸如传递性之类的操作。
Document Classification-您可以尝试在StackOverflow data set上学习系统以为给定问题建议标签。对于某些已建立的技术来说,这是一个众所周知的问题,但是它是一个有趣的数据集,并且在现实世界中具有明显而有用的应用程序。您还可以查看是否可以找到问题的特定功能(单词选择,长度,格式,标点符号等),使它们获得很高的评价。
Haiku Generation-一种愚蠢的想法,但我一直认为这是一个有趣的想法。音节计数可以用CMU pronouncing dictionary完成。如果不是特别有用,应该会很有趣。