2012-07-20 181 views
1

我在寻找JMegahal的替代品,它同样简单易用,但效果更好。我知道JMegahal使用马尔可夫链来产生新的字符串,我知道它们不一定是最好的。我被指向贝叶斯网络作为解决这个问题的最佳概念,但我找不到任何易于使用的Java库。我看到了WEKA,但它看起来很臃肿,很难遵循。我也看到了JavaBayes,但它几乎完全没有记录(他们的javadocs包含很少或没有信息,变量名称也很差),而且该库被公然写成C风格,使得它在Java中脱颖而出。JMegahal的替代品

+0

你应该接受本地代码,不要拒绝它的基础上的编码风格的差异;它的写法不同,因为它是一种不同的语言。 – 2012-07-20 16:57:05

+0

我不拒绝本地代码,我拒绝了以C风格编写的Java库的想法。我相信最好坚持每种语言的风格指南。我也不知道EBayes是在包装本地功能,尽管你似乎暗示它,因为它没有提供这样的指示。无论如何,这是记录不完善。 – 2012-07-20 17:37:48

+0

我只是误读了你的文章,你说他们用C风格编写了java代码。我懂了。 – 2012-07-20 18:20:00

回答

0

您可能需要考虑扩展JMegahal以过滤输入句子。早在90年代中期,Jason Hutchens就编写了这种4阶马尔可夫串算法的C版本(它实际上可能被用作JMegahal实现的灵感)。那时,Jason增加了过滤器来改进实现(通过用'I'替换'you'等)。通过进行一些基本的字符串操作意在将主题从说话者改变为系统,输出变得更加连贯。我认为这个扩展程序被称为HeX。

Reference 1

Reference 2

+0

除了用我和那类东西取代你之外,还有什么替代品和过滤器可以推荐? – 2012-07-20 17:33:50

+0

这真的取决于你使用统计语言学习。如果你想构建一些聊天机器人,你必须进行替代,以便将用户对机器人本应该说的内容(因此代名词替换以及这类内容)进行说明。如果你正试图构建一个自然语言识别器/处理器,那么你需要尝试对单词进行规范化(即同义词,不定式形式等),以便HMM权重根据意义进行分配,而不是单词的选择。 – mprivat 2012-07-20 17:43:27

+0

统计语言学习正在走向一个IRC bot,因此它落入了聊天机器人领域。所以,按照代词替代的方式,我应该寻找哪些其他类型的东西?我想确保它至少有点全面,因为目前的经验导致在大多数时候结果不尽如人意。 – 2012-07-20 17:50:34