自然語言處理的基本概念--結合spacy軟體的學習
基本概念
- doc: 表示document的縮寫,可以結構化地讀取文字相關的資訊,並且不會產生丟失
doc = nlp(text)
for token in doc:
print(token.text)
- token表示文字中的字元,比如一個詞或者一個標點符號。要讀取某個位置的詞符,可以直接使用doc的索引;token中也會包含很多屬性,比如
.text
就會輸出對應的原文;
doc = nlp(text)
token = doc[1]
print(token.text)
- span例項是文字中包含了一個或者更多字元的一段擷取,僅僅是Doc的一個檢視不包含實際的資料;
doc = nlp(text)
span = doc[1:3]
print(span.text)
統計模型
介紹:從語境中抽取到的語言學屬性,包括:詞性標註、依存關係解析、命名實體識別;
從標註過的文字中訓練而來;
可以使用更多的標註資料來更新模型,優化抽取結果;
模型包括:二進位制權重(用於進行屬性預測),詞彙表和元資訊(配置spacy語言類以及相應的處理流程元件);
在不瞭解屬性的時候,可以使用spacy.explain("對應屬性名稱")
來查詢對應的屬性含義;
基於規則的匹配抽取
基於Doc物件而不是直接在字串上進行匹配;
在詞符和其屬性上進行匹配;
會使用到模型的預測結果;
模板匹配
一個元素是字典的列表,一個字元是一個元素
- 匹配詞符完全一致的文字
[{"TEXT": "iPhone"}, {"TEXT": "X"}]
- 匹配詞彙屬性
[{"LOWER": "iphone"}, {"LOWER": "x"}]
- 匹配任意的詞符屬性
[{"LEMMA": "buy"}, {"POS": "NOUN"}]
example:
import spacy
from spacy.matcher import Matcher
nlp = spacy.load("zh_core_web_sm")
matcher = Matcher(nlp.vocab)
pattern = nlp(text)
matches = matcher(doc)
for match_id, start, end in matches:
matched_span = doc[start:end]
print(matched_span.text)
匹配詞彙屬性
找出五個字元:
一個只含有數字的字元;
三個匹配到“國際”,“足聯”和“世界盃”的詞符;
一個標點符號詞符;
pattern = [
{"IS_DIGIT": True},
{"LOWER": "國際"},
{“”LOWER“: "足聯”},
{"LOWER": "世界盃"},
{"IS_PUNCT": True}
]
匹配其他詞符屬性
尋找兩個詞符:
一個詞根是“喜歡”的動詞,後面跟著一個名詞
pattern = [
{"LEMMA": "喜歡", "POS": ""VERB},
{"POS": "NOUN"}
]
使用運算子和量詞
使用運算子和量詞來定義一個詞符應該被匹配幾次。可以用OP這個關鍵詞進行新增。其中"?"運算子使得相應的判斷詞符變為可以選
pattern = [
{"LEMMA": "買"},
{"POS": "NUM", "OP": "?"},
{"POS": "NOUN"}
]
相關文章
- 自然語言處理中的遷移學習(下)自然語言處理遷移學習
- 自然語言處理中的遷移學習(上)自然語言處理遷移學習
- 使用 Python+spaCy 進行簡易自然語言處理Python自然語言處理
- 如何用Python處理自然語言?(Spacy與Word Embedding)Python
- 深度學習浪潮中的自然語言處理技術深度學習自然語言處理
- Python自然語言處理學習筆記(57):小結Python自然語言處理筆記
- 機器學習/深度學習/自然語言處理學習路線機器學習深度學習自然語言處理
- 深度學習、自然語言處理和表徵方法深度學習自然語言處理
- 快速掌握spacy在python中進行自然語言處理(附程式碼&連結)Python自然語言處理
- Python自然語言處理學習筆記(66):7.7 小結Python自然語言處理筆記
- 《深度學習進階:自然語言處理》中的網址深度學習自然語言處理
- 基於深度多工學習的自然語言處理技術自然語言處理
- 自然語言處理(NLP)自然語言處理
- 自然語言處理背後的資料科學自然語言處理資料科學
- Python自然語言處理 6 學習分類文字Python自然語言處理
- 自然語言處理的最佳實踐自然語言處理
- 《NLP漢語自然語言處理原理與實踐》學習四自然語言處理
- 基於圖深度學習的自然語言處理方法和應用深度學習自然語言處理
- 自然語言處理中的分詞問題總結自然語言處理分詞
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- 自然語言處理(NLP)概述自然語言處理
- 自然語言處理NLP(四)自然語言處理
- Python自然語言處理Python自然語言處理
- 自然語言處理(NLP)的主要範疇自然語言處理
- Python自然語言處理 1 語言處理與PythonPython自然語言處理
- 自然語言處理中的語言模型預訓練方法自然語言處理模型
- python自然語言處理學習筆記(八)—— 句法分析Python自然語言處理筆記
- 如何將Python自然語言處理速度提升100倍:用spaCy/Cython加速NLPPython自然語言處理
- DARPA開發應用於自然語言處理的深度學習專案自然語言處理深度學習
- spaCy 學習 第二篇:語言模型模型
- HanLP 自然語言處理 for nodejsHanLP自然語言處理NodeJS
- [譯] 自然語言處理真是有趣!自然語言處理
- 自然語言處理:分詞方法自然語言處理分詞
- 自然語言處理與分析(one)自然語言處理
- 《Python自然語言處理實戰》連結表Python自然語言處理
- 12 種自然語言處理的開源工具自然語言處理開源工具
- 有趣的自然語言處理資源集錦自然語言處理
- 探索自然語言處理:語言模型的發展與應用自然語言處理模型