一個分詞指令碼
一個分詞指令碼
import jieba
target_file = "stress_words.txt"
# 讀取空白行之前的句子為個性化詞典
custom_dict = {}
with open(target_file, "r", encoding="utf-8") as f:
for line in f.readlines():
# 之前做的標記,跳過此行
if(line.strip() == "||"):
continue
# 新做的標記,結束個性詞典
if(line.strip() == ""):
break
# 切分出前半部分,將長度大於1的詞加入詞典
line = line.split("||")[0]
for word in line.strip().split(" "):
if(len(word) > 1):
freq = custom_dict.get(word,0)
custom_dict[word] = freq+1
# 將詞典儲存
special_dict = """
布藝 床品 家紡 窗簾
"""
for w in special_dict.replace("/n","").strip().split(" "):
custom_dict[w] = 20000000
with open("format_dict.txt", "w", encoding="utf-8") as out:
out.write("\n".join([k+" "+str(custom_dict[k]) for k in custom_dict.keys()]))
# 載入詞典
jieba.load_userdict("format_dict.txt")
# 根據已經整理的詞典重新分詞
words = []
cut_start = False
with open(target_file, "r", encoding="utf-8") as f:
for line in f.readlines():
# 之前做的標記,跳過此行
if(line.strip() == "||"):
continue
# 遇到空白標記行,則改變標記,跳過該空白行,並開始切詞
if(line.strip == ""):
cut_start = True
words.append(" || ")
continue
if "||" in line:
line = line.split("||")[0]
res = []
if(not cut_start):
# 遇到空白行之前,不重新切詞,只分析
res = line.strip().split(" ")
else:
# 遇到空白行之後,進行重新切詞
res = list(jieba.cut(line.strip().replace(" ", "")))
# 記錄改行詞典中未出現的詞
unique_word = [w for w in res if w not in custom_dict]
cut_res = " ".join(res)
true_len = 60 - (len(cut_res)*2 - len(res) + 1)
words.append(cut_res + true_len*" " + "|| " + " ".join(unique_word))
with open(target_file, "w", encoding="utf-8") as out:
out.write("\n".join(words))
相關文章
- VicWord 一個純php的分詞PHP分詞
- Elasticsearch 指令碼分組Elasticsearch指令碼
- [教程一] 寫一個搜尋:使用 Laravel Scout,Elasticsearch,ik 分詞LaravelElasticsearch分詞
- 一個centos初始化指令碼CentOS指令碼
- 【iOS】分享一個ipa打包指令碼iOS指令碼
- 一個awk if 巢狀 if 的指令碼巢狀指令碼
- mysql的一個備份指令碼MySql指令碼
- [教程三] 寫一個搜尋:自定義詞庫;使用 Laravel Scout,Elasticsearch,ik 分詞LaravelElasticsearch分詞
- 用Python寫一個簡單的中文分詞器Python中文分詞
- elastcisearch中文分詞器各個版本AST中文分詞
- 分詞之後一天分詞
- 分詞分詞
- 一個詞法分析器原始碼的剖析詞法分析原始碼
- 擼一個 iOS 重簽名指令碼iOS指令碼
- 【原創】一個dex脫殼指令碼指令碼
- shell入門--第一個shell指令碼指令碼
- 一個清理指令碼的改進思路指令碼
- 一個比較好的shell指令碼指令碼
- 一個自動ftp的指令碼(轉)FTP指令碼
- 記錄一個防止DDL的指令碼指令碼
- 11個Java開源中文分詞器使用方法和分詞效果對比Java中文分詞
- java版JieBa分詞原始碼走讀JavaJieba分詞原始碼
- HanLP分詞工具中的ViterbiSegment分詞流程HanLP分詞Viterbi
- #Elasticsearch中文分詞器 #IK分詞器 @FDDLCElasticsearch中文分詞
- 遠端分發sh指令碼指令碼
- PHP 避免同時執行一個指令碼PHP指令碼
- 共享一個iptables的shell指令碼檔案指令碼
- 一個快速檢視trace的小指令碼指令碼
- 向大家分享一個shell指令碼的坑指令碼
- 使用Java實現一個JS指令碼引擎JavaJS指令碼
- 最簡單的一個powershell的指令碼指令碼
- 一個完整的RMAN備份指令碼(轉)指令碼
- 一個自動生成oracle job的指令碼Oracle指令碼
- 從一個小程式指令碼看DB Time指令碼
- 每天檢查正式Server的一個指令碼Server指令碼
- 一個確定trace檔案的指令碼指令碼
- 分詞-1分詞
- Python分詞模組推薦:jieba中文分詞PythonJieba中文分詞