一個分詞指令碼
一個分詞指令碼
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指令碼
- 一個centos初始化指令碼CentOS指令碼
- 將一個Python指令碼做成一個Windows服務Python指令碼Windows
- 擼一個 iOS 重簽名指令碼iOS指令碼
- 一個方便 LeetCode 複習的指令碼LeetCode指令碼
- elastcisearch中文分詞器各個版本AST中文分詞
- 向大家分享一個shell指令碼的坑指令碼
- 一個快速檢視trace的小指令碼指令碼
- PHP 避免同時執行一個指令碼PHP指令碼
- 共享一個iptables的shell指令碼檔案指令碼
- 如何開發一個油猴(TamperMonkey)指令碼指令碼
- 使用Java實現一個JS指令碼引擎JavaJS指令碼
- 分詞之後一天分詞
- 分詞分詞
- 手寫指令碼程式碼太累!搞一個生成工具吧指令碼
- 分享工作中常用的一個Git指令碼Git指令碼
- 分享一個提高運維效率的 Python 指令碼運維Python指令碼
- 18 個一線工作中常用 Shell 指令碼指令碼
- 一個能夠生成 Markdown 表格的 Bash 指令碼指令碼
- 從0到1編寫一個指令碼引擎指令碼
- java版JieBa分詞原始碼走讀JavaJieba分詞原始碼
- 實現指令碼直譯器 - 詞法分析器指令碼詞法分析
- HanLP分詞工具中的ViterbiSegment分詞流程HanLP分詞Viterbi
- #Elasticsearch中文分詞器 #IK分詞器 @FDDLCElasticsearch中文分詞
- 如何用crontab每隔1分鐘執行一個命令列指令碼,shell設定時任務命令列指令碼
- 【緊急情況】:回宿舍放下書包的我,花了20分鐘敲了一個搶購指令碼指令碼
- 一鍵部署指令碼指令碼
- 寫一個Python指令碼刪除一個.py檔案的所有註釋Python指令碼
- SQL 操作指令 英文單詞SQL
- 我想做一個指令碼更新一些excel表/細胞。指令碼Excel
- 分詞-1分詞
- 一個“指令碼執行夯死”問題的分析指令碼
- 從0到1編寫一個JS指令碼引擎JS指令碼
- 用python寫一個自動化盲註指令碼Python指令碼
- Shell:如何寫一個多選選單的指令碼指令碼
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- 一個網站故障排查的、程式碼更新的簡便指令碼網站指令碼