机器生成中文句子

这篇博客介绍了作者如何结合一阶马尔可夫链和基于规则的方法,实现机器生成中文句子。通过13篇博客的语料库,构建了一个包含图和hash表的数据结构来表示词与后缀的关系。程序能识别特定的句子结束标志,并限制句子的起始词。文章展示了程序生成的部分句子,并列举了程序的局限性,如未正确处理符号、仅支持UTF-8编码及语料库规模小等。
摘要由CSDN通过智能技术生成

自然语言处理有两种基本的方法:基于规则和基于统计。
马尔可夫统计模型在自然语言处理中被广泛的应用。马尔可夫链
由俄国数学家马尔可夫提出,利用条件概率对语言建立数学模型,
最初马尔可夫用它分析普希金的诗。

我写了个玩具程序,它将一阶马尔可夫链和基于规则的一些方法
结合来实现机器生成中文句子。我把写的13篇博客修改了一下,
主要是删掉博文中包含的代码部分,并进行了手工分词。将这13
篇修改后的博文作为程序的语料库。

程序使用的主要数据结构是图和hash表。我用图表示词和其后缀
的关系。为方便查找,将图的节点嵌入到hash表中,实际上这个
图就是个级联的hash表。

我定义了几个符号作为句子结束的标志:
const char *const sentence_end = "。!?;:.;:?!";
而且在统计博文中的词时,标记那些可以作为句子开头的词。
程序在生成中文句子时只能把这些词作为句子的开始和结束。所
以程序并不是完全基于统计的。

下面是由程序生成的句子,每一行是一句:

我在我的机器上一般不是普通意义上的漂亮。
我学习数学主要依据如下理论:
程序员要在多种简单中进行权衡,影响了其他程序的下载地址:
程序员就是好飞机。
下面的代码,所以太大的会溢出。
下面的代码是数组索引,不赘述了。
two-way算法主要依据CriticalFactorization理论,则在一个程序对算法的一种改进。
two-way是2.93G,她是指除了作一些运算以外没有明显差异,收入

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值