- 自然語言處理導論
- 張奇等
- 757字
- 2023-11-17 16:47:08
2.2.1 詞語切分
對于絕大部分印歐語系(Indo-European languages)的語言來說,詞語之間通常由分隔符區分開來。英語是印歐語系語言的典型代表,英語句子中絕大部分單詞之間都由空格或標點分隔。但是在以漢語為代表的漢藏語系(Sino-Tibetan languages)的語言中,詞之間通常沒有分隔符。因此在對文本進行分析前,通常需要將句子切分為詞序列,稱之為詞語切分(Word Tokenization)。
詞語切分任務可以被定義為:給定一個符號串x=c1c2···cn(其中,ci對于英語來說是字母、數字、標點符號等,對于漢語來說是漢字、數字、標點符號等),輸出一個詞形序列y=t1t2···tm,可能會省略或刪除其中的部分標點符號。例如:
輸入:Let's first understand what's NLP.
輸出:Let?'s?first?understand?what?'s?NLP?.
通過上面的例子可以看到,雖然英語句子中絕大部分單詞都可以以空格和標點符號為分隔符進行識別,但還是存在一些例外情況,例如縮寫(Prof.)、日期(02/18/2022)、數字(562,000)、連字符(upper-case)等。此外,還可以看到“Let's”被劃分為“Let”和“'s”。正是因為此,在詞語切分的定義中使用了詞形。詞形(Token)指的是在一個特定文檔中某個能夠表達語義含義的字符序列。雖然在大部分情況下詞形和詞沒有區別,但是對于某些場景和算法,則有必要對詞和詞形進行區分。
在英語中,一些特殊的符號和數字也需要完整地保留在一起。比如數字(67.20)、時間(22:37)、微博話題標簽(#北京2022年冬奧會#)、E-mail地址(cs_nlp@fudan.edu.cn)等。在特定的應用中,有時也會將“Hong Kong”“Head,Shoulders,Knees and Toes”劃分為一個詞形。這也使得在某些應用中詞語切分與命名實體識別任務(將在第7章信息抽取中進行詳細介紹)緊密相關。
在通常情況下,針對英語等印歐語系語言的詞語切分任務,可以采用基于有限狀態自動機(Fi-nite State Automaton,FSA)融合正則表達式的方法完成。但是對于漢語、日語、阿拉伯語等詞語中間沒有分隔符的語言,詞語切分問題更加復雜,在后續章節中我們將以中文分詞為例進行詳細介紹。