運用CRF技術進行簡單分詞

2021-10-01 01:24:32 字數 2174 閱讀 5383

input_data = codecs.open(pku_training, 'r', 'utf-8')

output_data = codecs.open(pku_training_out, 'w', 'utf-8')

for line in input_data.readlines():

word_list = line.strip().split()

for word in word_list:

if len(word) == 1:

output_data.write(word + " s\n")

else:

output_data.write(word[0] + " b\n")

for w in word[1:len(word)-1]:

output_data.write(w + " m\n")

output_data.write(word[len(word)-1] + " e\n")

output_data.write("\n")

input_data.close()

output_data.close()

input_data = codecs.open(input_file, 『r』, 『utf-8』)

output_data = codecs.open(output_file, 『w』, 『utf-8』)

for line in input_data.readlines():

for word in line.strip():

word = word.strip()

if word:

output_data.write(word + 「\tb\n」)

output_data.write("\n")

input_data.close()

output_data.close()

標註之後如:

高 b興 b

通 b過 b

中 b6,進行測試crf_test -m pku_model pku_test_out.utf8 > pku_test_result.utf8,結果如下

共 b b

同 b e

創 b b

造 b e

美 b b

好 b e

的 b s

新 b s

7,得到**標註的檔案後,需要將詞轉化為分詞:

input_data = codecs.open(input_file, 『r』, 『utf-8』)

output_data = codecs.open(output_file, 『w』, 『utf-8』)

i=0for line in input_data.readlines():

if line == 「\r\n」:

output_data.write("\n")

else:

char_tag_pair = line.strip().split(』\t』)

char = char_tag_pair[0]

tag = char_tag_pair[2]

i=i+1

print(i)

if tag == 『b』:

output_data.write(』 』 + char)

elif tag == 『m』:

output_data.write(char)

elif tag == 『e』:

output_data.write(char + 』 『)

else: # tag == 『s』

output_data.write(』 』 + char + 』 ')

input_data.close()

output_data.close()

效果如下:

共同 創造 美好 的 新 世紀 —— 二○○ 一 年 新年 賀詞

( 二○○○年 十二月 三十一日 ) ( 附 1 張 )

女士 們 , 先生 們 , 同志 們 , 朋友 們 :

8, pku_test_gold.utf8 標準,pku_test_word.utf8分詞後的結果,最後的評估如下:

參考文章:中文分詞入門之字標註法4

運用visual studio進行簡單的單元測試

昨天下午安裝了visual studio,本打算晚上進行單元測試的,但當我再開啟的時候就讓我選擇修復或解除安裝,修復完之後還是不能用,頓時覺得心好累啊,後來室友說要更新update5,點了更新之後就是無情無盡的等待,更新完都已經熄燈了,今天上完課回來就開始弄單元測試,下面是具體過程 點選新建專案,進...

MATLAB 運用傅利葉變換對訊號進行簡單的濾波

dt 0.02 取樣間隔 n 512 取樣點數t 0 dt n 1 dt 取樣時刻 fs 1 dt 取樣頻率,與才取樣間隔互為倒數n 0 1 n 1 f fs n n x軸每個點對應的頻率 x 0.5 sin 2 pi 3 t cos 2 pi 10 t 訊號 figure 1 plot t,x y...

MATLAB 運用傅利葉變換對訊號進行簡單的濾波

matlab 運用傅利葉變換對訊號進行簡單的濾波 dt 0.02 取樣間隔 n 512 取樣點數t 0 dt n 1 dt 取樣時刻 fs 1 dt 取樣頻率,與才取樣間隔互為倒數n 0 1 n 1 f fs n n x軸每個點對應的頻率 x 0.5 sin 2 pi 3 t cos 2 pi 10...