NPL---自然語言處理單詞界定問題

小张睡醒了發表於2024-03-18

2.1 單詞界定問題

單詞定界問題是屬於詞法層面的消歧任務。在口語中,詞與詞之間通常是連貫說出來的。在書面語中,中文等語言也沒有詞與詞之間的邊界。由於單詞是承載語義的最小單元,要解決自然語言處理,單詞的邊界界定問題首當其衝。特別是中文文字通常由連續的字序列組成,詞與詞之間缺少天然的分隔符,因此中文資訊處理比英文等西方語言多一步工序,即確定詞的邊界,我們稱為“中文自動分詞”任務。通俗的說就是要由計算機在詞與詞之間自動加上分隔符,從而將中文文字切分為獨立的單詞。例如一個句子“今天天氣晴朗”的帶有分隔符的切分文字是“今天|天氣|晴朗”。中文自動分詞處於中文自然語言處理的底層,是公認的中文資訊處理的第一道工序,扮演著重要的角色,主要存在新詞發現和歧義切分等問題。我們注意到:正確的單詞切分取決於對文字語義的正確理解,而單詞切分又是理解語言的最初的一道工序。這樣的一個“雞生蛋、蛋生雞”的問題自然成了(中文)自然語言處理的第一條攔路虎。

"""
 author:jjk
 datetime:2018/11/1
 coding:utf-8
 project name:Pycharm_workstation
 Program function: 中文分詞
                   結巴分詞
 
"""
import jieba # 匯入結巴分詞包
import jieba.posseg as pseg
import time #  時間

time_Start = time.time()

#f=open("t_with_splitter.txt","r")#讀取文字  
#string=f.read().decode("utf-8")

string = '中文自動分詞指的是使用計算機自動對中文文字進行詞語的切分,' + \
         '即像英文那樣使得中文句子中的詞之間有空格以標識。' + \
         '中文自動分詞被認為是中文自然語言處理中的一個最基本的環節'

words = pseg.cut(string) # 進行分詞
result = "" #記錄最終結果的變數 
for w in words:
    result += str(w.word) + "/" + str(w.flag) # 加詞性標註  
print(result) # 輸出結果
f = open("result.txt","w") #將結果儲存到另一個文件中 
f.write(result)
f.close()
time_Stop = time.time()
print("分詞及詞性標註完成,耗時:"+str(time_Stop-time_Start)+"秒。")# 輸出結果

相關文章