基于Python的汉语分词系统
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
漢語分詞系統
目錄
漢語分詞系統 1
摘要 1
1 緒論 1
2 相關信息 1
2.1 實驗目標 1
2.2 編程語言與環境 2
2.3 項目目錄說明 2
3 訓練測試 3
4 詞典構建 3
5 正反向最大匹配分詞實現 3
5.1 正向最大匹配分詞-最少代碼量 3
5.2 反向最大匹配分詞-最少代碼量 4
6 正反向最大匹配分詞效果分析 5
7 基于機械分詞系統的速度優化 6
2.2編程語言與環境
Python 3.7.9 ,Windows11,VScode
2.3項目目錄說明
目錄中存在Code和io_files兩個文件夾,Code文件夾中存放第一部分到第四部分實驗代碼,io_files文件夾中存放第一部分到第四部分實驗產生文件和依賴文件。
io_files文件夾:
?199801_sent.txt 為標準文本,是1998 年 1 月《人民日報》未分詞語料,用于產生訓練集和測試集
?199801_seg&pos.txt 為標準文本,是1998 年 1 月《人民日報》的分詞語料庫,用于產生測試集對應的分詞標準答案
?dic.txt為自己形成的分詞詞典,存放根據訓練集產生的詞典
?train.txt 為訓練集,取分詞語料庫中 的數據作為訓練集用于生成詞典
?std.txt 為標準答案, 取分詞語料庫中另外 的數據作為標準答案,與分詞結果進行比對計算準確率、召回率和F 值
?test.txt 為測試集,在未分詞語料中取與標準答案相對應的 的數據作為測試集產生分詞結果
?seg_FMM.txt 為全文的分詞結果,使用正向最大匹配分詞,使用train.txt文件作為訓練集,將199801_sent.txt文件進行分詞
?seg_BMM.txt為全文的分詞結果,使用反向最大匹配分詞,使用train.txt文件作為訓練集,將199801_sent.txt文件進行分詞
?score.txt為第三部分生成的評測分詞效果的文本,其中包括準確率(precision)、召回率(recall)和F 值
?seg_FMM_1_10.txt 為測試集分詞結果,使用正向最大匹配分詞,使用train.txt文件作為訓練集,將test.txt文件進行分詞
?seg_BMM_1_10.txt 為測試集分詞結果,使用反向最大匹配分詞,使用train.txt文件作為訓練集,將test.txt文件進行分詞
?better_seg_FMM.txt 為測試集分詞結果,使用優化后的正向最大匹配分詞,使用train.txt文件作為訓練集,將test.txt文件進行分詞,計算分詞時間與seg_FMM_1_10.txt分詞時間進行比較
?better_seg_BMM.txt 為測試集分詞結果,使用優化后的反向最大匹配分詞,使用train.txt文件作為訓練集,將test.txt文件進行分詞,計算分詞時間與seg_BMM_1_10.txt分詞時間進行比較
?TimeCost.txt 為分詞所用時間,存放優化前和優化后的分詞時間
Code文件夾:
?part_1.py 為實驗第一步詞典的構建代碼,其中包括生成分詞詞典函數以及生成訓練集、測試集和標準答案的函數
?part_2.py 為實驗第二步正反向最大匹配分詞實現代碼,其中包括讀取詞典內容函數、正向最大匹配分詞函數和反向最大匹配分詞函數
?part_3.py 為實驗第三步正反向最大匹配分詞效果分析代碼,其中包括計算評測得分函數,計算總詞數和正確詞數函數,計算準確率、召回率和f值函數以及獲取詞對應下標的函數
?part_4.py 為實驗第四步基于機械匹配的分詞系統的速度優化代碼,其中包括Trie樹的實現以及其中添加字符串函數,查找字符串函數,在子節點中查找字符對應位置函數和返回哈希值函數,還有獲得正向最大匹配的詞典樹函數,獲得反向最大匹配的詞典樹函數,優化后正向最大匹配分詞函數,優化后反向最大匹配分詞函數,全文分割函數以及計算時間函數
訓練測試
訓練集、測試集和標準答案來源于199801_sent.txt 和199801_seg&pos.txt文本文件,訓練集為199801_seg&pos.txt文件的 ,標準答案為剩下的 ,對199801_seg&pos.txt文件各行取模,若行數模10余0,則加入測試集,本文轉載自http://www.biyezuopin.vip/onews.asp?id=16703剩余的加入標準答案。
在199801_sent.txt中取與標準答案對應行加入測試集。
詞典構建
構建詞典時,不將量詞加入詞典,可以減少詞數,帶來空間和時間上的優化,且詞典中不存在重復詞。
讀取訓練集內容,進行逐行提取,以詞前的空格和詞后的 ’ / ’ 字符提取詞,若詞前存在 ’ [ ’ 字符則去除該字符。
將提取出來的詞加入列表,在訓練集所有內容提取完畢后對列表進行排序。
將列表輸出至詞典文件生成詞典,一行存儲一個詞便于后續讀取。
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
資源下載地址:https://download.csdn.net/download/sheziqiong/86776599
總結
以上是生活随笔為你收集整理的基于Python的汉语分词系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用福禄克DSX系列测试仪部署MPTL模
- 下一篇: nodejs+supertest+moc