自然語言處理NLP(一)
阿新 • • 發佈:2018-10-02
rac 控制臺 分析 arm ont 正則表達 stop python none
NLP
-
自然語言:指一種隨著社會發展而自然演化的語言,即人們日常交流所使用的語言;
- 自然語言處理:通過技術手段,使用計算機對自然語言進行各種操作的一個學科;
NLP研究的內容
- 詞意消歧;
- 指代理解;
- 自動生成語言;
- 機器翻譯;
- 人機對話系統;
- 文本含義識別;
NLP處理
- 語料讀入
- 網絡
- 本地
- 分詞
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018-9-28 22:21 # @Author : Manu # @Site : # @File : python_base.py # @Software: PyCharm import urllib from nltk import word_tokenize from bs4 import BeautifulSoup # 在線文檔下載 url = ‘http://www.gutenberg.org/files/2554/2554-0.txt‘ res = urllib.request.urlopen(url) raw = res.read().decode(‘utf8‘) print(‘length‘, len(raw)) print(‘type‘, type(raw)) print(raw[:100]) # 分詞 tokens = word_tokenize(raw) print(tokens[:50]) print(‘length:‘ + str(len(tokens))) print(‘type:‘, type(tokens)) # 創建文本 text = nltk.Text(tokens) print(‘type‘, type(text)) print(‘length‘, len(text)) print(text)
- 基於此單位的文本分析
- 正則表達式
- 正則表達式
- 分割
- 斷句
- 分詞
- 規範化輸出
中文分詞及相應算法
- 基於字典、詞庫匹配;
- 正向最大匹配;
- 逆向最大匹配;
- 雙向最大匹配;
- 設立切分表執法;
- 最佳匹配;
- 基於詞頻度統計;
- N-gram模型;
- 隱馬爾科夫模型;
- 基於字標註的中文分詞方法;
- 基於知識理解;
分詞方法比較
結巴分詞
- 安裝
在控制臺使用pip install jieba
即可安裝; - 功能
- 分詞;
jieba.cut
、jieba.cut_for_search
;
- 添加自定義詞典;
jieba.load_userdict(file_name)
、add_word(word, freq=None, tag=None)
jieba.del_word(word)
、jieba.suggest_freq(segmen, tune=True)
;
- 關鍵詞提取;
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
;jieba.analyse.set_idf_path(file_name)
;jieba.analuse.set_stop_words(file_name)
;
- 詞性標註;
jieba.tokenize()
;jieba.posseg.cut()
;
- 並行分詞;
- 詞匯搜索;
- 分詞;
自然語言處理NLP(一)