美文网首页
自然语言处理入门的第一个代码:最大正向匹配算法

自然语言处理入门的第一个代码:最大正向匹配算法

作者: 啊啊啊啊_ef7b | 来源:发表于2019-11-29 17:29 被阅读0次

今天终于成功的把最大正向匹配算法的代码写好啦,虽然是一个很简单的算法,但是对于我这个自然语言处理小白来说,也花费了好久呢,还是有点小开心的,哈哈。

最大正向匹配算法原理:从右到左依次匹配语料库中的词语

步骤:1、找出语料库中最长的词语长度 max_lenth 2、将max_lenth与需要划分的句子进行比较,选较小值作为句子的划分长度3、根据划分长度划分句子,并将划分后的句子与语料库进行匹配,若语料库中存在该句子,则该句子为完整语句,将该句子从需要划分的句子中剔除后,重新执行上述操作,若没有该句子,则将句子中的字从右至左依次剔除,并逐一进行匹配,直至匹配到相应的句子或匹配到句子的第一个字后,再重新执行上述操作。

相应代码

dict_list=[]

def init():

with open('中医词典.txt','r')as dict:

for iin dict:

i=i.strip()

dict_list.append(i)

print(dict_list)

def FMM(sentence,dict_list):

cut_word_list=[]

maxLenth_dict_list=max(len(word)for wordin dict_list)

while len(sentence)>0:

word_lenth =min(maxLenth_dict_list, len(sentence))

cut_word=sentence[:word_lenth]

while len(cut_word)>0:

if len(cut_word)==1:

cut_word_list.append(cut_word)

break

            elif cut_wordin dict_list:

cut_word_list.append(cut_word)

break

            else:

cut_word=sentence[:word_lenth-1]

word_lenth=word_lenth-1

        sentence=sentence[len(cut_word):]

words='/n'.join(cut_word_list)

return  words

def main():

sentence=input('请输入要分词的句子:')

init()

word=FMM(sentence,dict_list)

print(word)

if __name__ =='__main__':

main()

中医代码是本人从网站爬下来的语料库,可以更改为自己的语料库。

正向最大匹配算法,是基于词典的语料库算法,所以在使用时,需要构建相应的词典。

相关文章

  • 自然语言处理入门的第一个代码:最大正向匹配算法

    今天终于成功的把最大正向匹配算法的代码写好啦,虽然是一个很简单的算法,但是对于我这个自然语言处理小白来说,也花费了...

  • 中文分词的方法

    1、基于字符串匹配的方法 1.1 正向最大匹配分词算法1.2 逆向最大匹配分词算法1.3 双向最大匹配分词算法1....

  • 中文分词方法

    中文分词是中文自然语言处理的基础,现代语言分析处理算法基本是以词为单位进行计算的。 1、词典匹配 词典匹配是分词最...

  • NLP | 文本匹配算法

    01 贪婪策略 今天我们调用python中的一个自然语言处理包nltk,来实现一个MaxMatch文本匹配算法。 ...

  • Python基于规则的中文分词

    Python基于规则中文分词(正向最大匹配,逆向最大匹配,双向最大匹配) 最大匹配方法(基于规则的)是一种基于词典...

  • 自然语言处理中的分词算法实现

    最近实现的3种中文分词算法 基于最大匹配(前向匹配、后向匹配、双向匹配) HMM n-gram 基于最大匹配算法(...

  • NLP-中文分词:最大正向匹配算法

    一、前言 1、什么是分词 在讲分词算法之前,先来研究一下什么是分词?分词是将语句按照语境,以字词为单位划分的一个过...

  • [NLP]TFIDF算法简介

    本文主要介绍了自然语言处理领域中文本表示的一个重要算法:TF-IDF算法。包括其基本概念,以及简单的代码实现。 T...

  • 汽车之家招聘-欢迎自荐与推荐

    下面所有的职位诱惑都包含下面这几条: 技术类: 广告算法工程师 算法工程师 自然语言处理工程师 自然语言处理高级工...

  • 字符串匹配算法总结

    字符串匹配算法总结 所有代码集合 在一个主串中匹配模式串 BF算法   最简单的使用strcmp逐个匹配的算法, ...

网友评论

      本文标题:自然语言处理入门的第一个代码:最大正向匹配算法

      本文链接:https://www.haomeiwen.com/subject/pbmgwctx.html