詞性標注
詞性標注(粵音:ci4 sing3 biu1 zyu3;英文:POS tagging)係自然語言處理(NLP)同相關工作上成日做嘅一種重要工序,指攞一段文字做 input,再出個 output 係同段文字入面每隻字標明佢係咩詞性嘅,即係每隻字都標明咗佢係名詞定動詞定形容詞定點[1][2]。
舉個例說明,想像家陣個 input 係以下呢句粵文句子[3]:
佢喺街市賣貝殼。
做咗詞性標注,個 output 就會係類似以下噉嘅樣:
喺廿世紀,詞性標注曾經係搵人手做嘅,但到咗廿一世紀初,NLP 等領域嘅發展經已有咗專化嘅演算法教電腦自動做詞性標注[4],例如 Python 嘅專化函式庫就索性整埋句陳述式 pos_tag(text)
俾用家用一句碼嚟叫部電腦做詞性標注。呢種技術喺 NLP 同語言學嘅研究(尤其係運算語言學)上都時不時會用到。
標注集
[編輯]九大詞性
[編輯]詞性標注做嘅嘢係「foreach 字,俾個標籤佢標明佢係邊隻詞性」。喺語言學上,一隻詞性係指一個字類,類入面嘅字冚唪唥都有同樣嘅句法功能-同一隻詞性嘅字喺「負責做句子邊部份」呢點上一樣;喺最基本上,英文同粵文入面嘅字可以分做以下呢九大詞性[5][6]:
- 名詞(
NN
):一個名詞通常係用嚟指一件或者多件物件,當中「物件」可以係生物、地方、行動、諗頭以至概念呀噉,能夠做動詞嘅主語或者賓語,能夠俾形容詞形容;粵文入面狼(生物)、香港(地方)同埋複雜度(概念)等嘅字詞正常嚟講都係名詞[7]。 - 動詞(
VB
):一個動詞通常都係指一啲動作,能夠由名詞做出或者做喺名詞身上;粵文入面跑同埋諗(諗可以由生物做,可以作用喺概念身上)等嘅字詞都係動詞。 - 冠詞:一個冠詞會掕住喺個名詞度,表示嗰個名詞指嗰樣嘢係咪可以指定,例如英文入面嘅 the(指定嗰個 xx)同埋 a(一個 xx)噉;順帶一提,廣東話係少數有冠詞(或者類似冠詞嘅嘢)嘅漢語[8],會有隻狼(指定嗰隻狼)同埋啲人(指定嗰班人)等嘅字眼[9]。
- 形容詞(
ADJ
):最基本上,一個形容詞會掕住個名詞,用嚟形容嗰個名詞嘅特性;例如粵文「藍色嘅蝴蝶」入面藍色嘅就係形容詞,形容佢掕住嗰個名詞(蝴蝶)嘅特性。 - 副詞(
RB
):攞嚟修飾動詞或者形容詞等多種唔係名詞嘅字詞;例如粵文「我真係好抱歉」入面抱歉係個形容詞,而好係副詞,指抱歉嘅程度高。 - 介詞(
IN
):通常係掕住個名詞或者動詞,表示時間或者空間上嘅關係;例如粵文「當個天黑嗰陣...」入面當... 嗰陣就係介詞。 - 代名詞(
PRP
):攞嚟替代名詞,費事吓吓都要出返個名詞嘅名;例如粵文「阿莊企咗喺度。佢望住窗外面嘅景色」入面個佢就係代名詞,代指阿莊。 - 連接詞(
CC
):用嚟做「連接」嘅字詞;例如粵文「我都想嚟食飯,但我唔得閒」入面嘅但就係個連接詞。 - 語氣詞(
UH
):用嚟表示語氣嘅字詞,好多時可以單獨噉出現;例如粵文「我估佢今晚得閒啩」入面嘅啩係語氣詞,表示講嗰個人唔係完全肯定,而「咦?」就係個單獨出現嘅語氣詞,表示「有少少驚訝」噉嘅意思。
進階詞性
[編輯]唔同 NLP 架生嘅標注集(tag set)都可以唔同。Python 嘅自然語言工具箱仲會有以下呢啲進階嘅詞性標籤[註 1][6]:
... 呀噉。
原理
[編輯]詞性標注可以幾撈絞。喺英文等嘅多種語文入面,都有「一隻字既可以攞嚟做名詞,又可以攞嚟做動詞」等嘅情況,例如英文字 mentor 可以做名詞指導師,又可以做動詞指教導;因為噉,詞性標注唔可以齋靠簡單嘅「教部電腦自動查字典,睇吓隻字係咩詞性」嚟做;喺廿一世紀初,詞性標注有多種方法做,最簡單嘅方法係用馬可夫鏈-
馬可夫鏈係種數學模型,用一幅圖嚟表示一拃狀態以及狀態之間嘅變換機率,例如附圖 1 入面嗰條簡單嘅馬可夫鏈就係噉:條鏈有 同 兩個可能狀態;如果家陣世界嘅狀態係 ,下一刻狀態變成 嘅機率係 70% / 0.7,狀態繼續維持係 嘅機率係 30% / 0.3;如果家陣世界嘅狀態係 ,下一刻狀態變成 嘅機率係 40% / 0.4,狀態繼續係 嘅機率係 60% / 0.6。齋靠經驗可知,「手上隻字係邊隻詞性」會左右「跟住隻字係邊隻詞性」-响英文入面,動詞後面「跟名詞」嘅機率明顯大過「跟動詞」嘅,所以例如想像家陣教電腦[10]:
- 攞要睇嗰句句子;
- 攞句句子頭一隻字,或者詞性最明顯嗰隻字;
- 按過往嘅經驗(假設個程式睇過大量嘅語料數據),估計隻字最大機率係邊隻詞性;
- 按過往嘅經驗,估計跟住嗰隻字(或者打前嗰隻字)最大機率係邊隻詞性;
- ... 估到估嗮成句句子尾為止。
齋靠噉係做唔到完美嘅詞性標注,但經已有一定嘅準確度。
睇埋
[編輯]註釋
[編輯]引咗
[編輯]- ↑ Neunerdt, M., Trevisan, B., Reyer, M., & Mathar, R. (2013). Part-of-speech tagging for social media texts. In Language Processing and Knowledge in the Web (pp. 139-150). Springer, Berlin, Heidelberg.
- ↑ Kupiec, J. (1992). Robust part-of-speech tagging using a hidden Markov model. Computer speech & language, 6(3), 225-242.
- ↑ NLP Guide: Identifying Part of Speech Tags using Conditional Random Fields. Medium.
- ↑ "POS tags". Sketch Engine. Lexical Computing. 2018-03-27. Retrieved 2018-04-06.
- ↑ Kroeger, Paul (2005). Analyzing Grammar: An Introduction. Cambridge: Cambridge University Press.
- ↑ Gupta, Anil (1980). The logic of common nouns. New Haven and London: Yale University Press
- ↑ Datapoint Cantonese / Definite Articles. The World Atlas of Language Structures.
- ↑ Wu, Y., & Bodomo, A. (2009). Classifiers ≠ determiners (PDF). Linguistic Inquiry, 40(3), 487-503.
- ↑ Part Of Speech Tagging for Beginners. Towards Data Science.
拎
[編輯]- (英文) nltk tags,Python 教學
- (英文) 畀初學者睇嘅詞性標注