[ N-gram 歧义句识别 ]

本文旨在检测具有交集型歧义的句子,通过词典获取所有可能的分词结果,利用bi-gram语言模型计算概率。在代码实现中,包括分词结果获取、词库构建和词频统计等步骤。实验结果显示,仅识别出部分歧义句,表明方法仍有提升空间,作者期望采用深度学习改进并寻找合适的歧义数据集。
摘要由CSDN通过智能技术生成


使用的中文文本语料(感谢原作者)
使用的bi-gram词频统计(感谢原作者)

1. 目的

对于某句话,检测其是否有交集型歧义。例如,南京市长江大桥,根据断句的不同,可以有以下两种理解:

  1. 南京市 / 长江大桥
  2. 南京 / 市长 / 江大桥

2. 方法思路

对于某个句子,根据词典,找到它所有可能的分词结果,再根据语言模型,得到每种分词结果下的句子成立的概率,取所有概率中最大的两种情况,若这两个概率大小相差不大,说明这两种分词结果都有可能成立。则可简单认为此句有交集型歧义。

3.代码实现

3.1 获得所有可能的分词结果

#采用递归的形式实现,借鉴而来,还未深究
def text_count(text, word, dict):
    if len(word) == 0:
        all_split.append(text)
        # print('/'.join(text))
        return 1
    count = 0

    for i in range(1, len(word) + 1):
        if word[:i] not in dict:
            continue
        count += text_count(text + [word[:i]], word[i:], dict)
    return count

3.2 由原始语料得到词库

word2frequency = {
   }
pattern = re.compile(r'[/|a-z|A-Z]')#删除 / 、a-z、A-Z 字符 
with open(path_corpus, 'r', encoding='utf-8') as f:
    all_content = f.readlines
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值