最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)機械分詞之逆向最大匹配算法代碼示例

 更新時間:2017年12月13日 14:39:19   作者:lalalawxt  
這篇文章主要介紹了python實現(xiàn)機械分詞之逆向最大匹配算法代碼示例,具有一定借鑒價值,需要的朋友可以參考下。

逆向最大匹配方法

有正即有負,正向最大匹配算法大家可以參閱http://m.fzitv.net/article/127404.htm

逆向最大匹配分詞是中文分詞基本算法之一,因為是機械切分,所以它也有分詞速度快的優(yōu)點,且逆向最大匹配分詞比起正向最大匹配分詞更符合人們的語言習慣。逆向最大匹配分詞需要在已有詞典的基礎(chǔ)上,從被處理文檔的末端開始匹配掃描,每次取最末端的i個字符(分詞所確定的閾值i)作為匹配字段,若匹配失敗,則去掉匹配字段最前面的一個字,繼續(xù)匹配。而且選擇的閾值越大,分詞越慢,但準確性越好。

逆向最大匹配算法python實現(xiàn):

分詞文本示例:

分詞詞典words.xlsx示例:

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 
 
''''' 
用逆向最大匹配法分詞,不去除停用詞 
''' 
import codecs 
import xlrd 
 
#讀取待分詞文本,readlines()返回句子list 
def readfile(raw_file_path): 
  with codecs.open(raw_file_path,"r",encoding="ANSI") as f: 
    raw_file=f.readlines() 
    return raw_file 
#讀取分詞詞典,返回分詞詞典list 
def read_dic(dic_path): 
  excel = xlrd.open_workbook(dic_path) 
  sheet = excel.sheets()[0] 
  # 讀取第二列的數(shù)據(jù) 
  data_list = list(sheet.col_values(1))[1:] 
  return data_list 
#逆向最大匹配法分詞 
def cut_words(raw_sentences,word_dic): 
  word_cut=[] 
  #最大詞長,分詞詞典中的最大詞長,為初始分詞的最大詞長 
  max_length=max(len(word) for word in word_dic) 
  for sentence in raw_sentences: 
    #strip()函數(shù)返回一個沒有首尾空白字符(‘\n'、‘\r'、‘\t'、‘')的sentence,避免分詞錯誤 
    sentence=sentence.strip() 
    #單句中的字數(shù) 
    words_length = len(sentence) 
    #存儲切分出的詞語 
    cut_word_list=[] 
    #判斷句子是否切分完畢 
    while words_length > 0: 
      max_cut_length = min(words_length, max_length) 
      for i in range(max_cut_length, 0, -1): 
        #根據(jù)切片性質(zhì),截取words_length-i到words_length-1索引的字,不包括words_length,所以不會溢出 
        new_word = sentence[words_length - i: words_length] 
        if new_word in word_dic: 
          cut_word_list.append(new_word) 
          words_length = words_length - i 
          break 
        elif i == 1: 
          cut_word_list.append(new_word) 
          words_length = words_length - 1 
    #因為是逆向最大匹配,所以最終需要把結(jié)果逆向輸出,轉(zhuǎn)換為原始順序 
    cut_word_list.reverse() 
    words="/".join(cut_word_list) 
    #最終把句子首端的分詞符號刪除,是避免以后將分詞結(jié)果轉(zhuǎn)化為列表時會出現(xiàn)空字符串元素 
    word_cut.append(words.lstrip("/")) 
  return word_cut 
#輸出分詞文本 
def outfile(out_path,sentences): 
  #輸出模式是“a”即在原始文本上繼續(xù)追加文本 
  with codecs.open(out_path,"a","utf8") as f: 
    for sentence in sentences: 
      f.write(sentence) 
  print("well done!") 
def main(): 
  #讀取待分詞文本 
  rawfile_path = r"逆向分詞文本.txt" 
  raw_file=readfile(rawfile_path) 
  #讀取分詞詞典 
  wordfile_path = r"words.xlsx" 
  words_dic = read_dic(wordfile_path) 
  #逆向最大匹配法分詞 
  content_cut = cut_words(raw_file,words_dic) 
  #輸出文本 
  outfile_path = r"分詞結(jié)果.txt" 
  outfile(outfile_path,content_cut) 
if __name__=="__main__": 
  main() 

總結(jié)

分析分詞結(jié)果可以知道,機械分詞的效果優(yōu)劣,一方面與分詞匹配算法有關(guān),另外一方面極其依賴分詞詞典。所以若想得到好的分詞效果,處理相關(guān)領(lǐng)域的文本時,需要在分詞詞典中加入特定領(lǐng)域的詞匯。

以上就是本文關(guān)于python實現(xiàn)機械分詞之逆向最大匹配算法代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Python獲取"3年前的今天"的日期時間問題

    Python獲取"3年前的今天"的日期時間問題

    在Python中,如何獲取"?3年前的今天"的datetime對象,本文通過實例代碼給大家詳細講解,代碼簡單易懂對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-01-01
  • Python查找最長不包含重復字符的子字符串算法示例

    Python查找最長不包含重復字符的子字符串算法示例

    這篇文章主要介紹了Python查找最長不包含重復字符的子字符串算法,涉及Python字符串遍歷、統(tǒng)計相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • Django+Xadmin構(gòu)建項目的方法步驟

    Django+Xadmin構(gòu)建項目的方法步驟

    這篇文章主要介紹了Django+Xadmin構(gòu)建項目的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • spyder常用快捷鍵(分享)

    spyder常用快捷鍵(分享)

    下面小編就為大家?guī)硪黄猻pyder常用快捷鍵(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • python實現(xiàn)圖像拼接

    python實現(xiàn)圖像拼接

    這篇文章主要為大家詳細介紹了python實現(xiàn)圖像拼接,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python基礎(chǔ)教程之利用期物處理并發(fā)

    Python基礎(chǔ)教程之利用期物處理并發(fā)

    這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之利用期物處理并發(fā)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧。
    2018-03-03
  • 詳解Python使用Plotly繪圖工具,繪制甘特圖

    詳解Python使用Plotly繪圖工具,繪制甘特圖

    這篇文章主要介紹了Python使用Plotly繪圖工具,繪制甘特圖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 教你用 Python 實現(xiàn)微信跳一跳(Mac+iOS版)

    教你用 Python 實現(xiàn)微信跳一跳(Mac+iOS版)

    這幾天看網(wǎng)上好多微信跳一跳破解了,不過都是安卓的,無奈蘋果不是開源也沒辦法。本文給大家分享用 Python 來玩微信跳一跳(Mac+iOS版),具體實現(xiàn)代碼大家參考下本文
    2018-01-01
  • python pandas利用fillna方法實現(xiàn)部分自動填充功能

    python pandas利用fillna方法實現(xiàn)部分自動填充功能

    這篇文章主要介紹了python pandas通過fillna方法實現(xiàn)部分自動填充功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Django框架 查詢Extra功能實現(xiàn)解析

    Django框架 查詢Extra功能實現(xiàn)解析

    這篇文章主要介紹了Django框架 查詢Extra功能實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09

最新評論

桓台县| 吐鲁番市| 水城县| 包头市| 重庆市| 乌拉特中旗| 大渡口区| 临夏市| 山西省| 建平县| 辽中县| 旬邑县| 江城| 灌阳县| 崇仁县| 宜阳县| 绵竹市| 海宁市| 通海县| 汪清县| 工布江达县| 大悟县| 深州市| 兴山县| 桦甸市| 登封市| 绥中县| 古田县| 林口县| 哈尔滨市| 江安县| 沁源县| 陆丰市| 体育| 丽水市| 海伦市| 台江县| 都江堰市| 阳朔县| 德格县| 夏邑县|