自然語言處理系列-1-基本應用
本文介紹自然語言處理的常見任務,使讀者在遇到實際問題時能夠找到用怎樣的工具去解決。
眾所周知,自然語言處理的目標是讓計算機理解人類文字,使計算機具備理解和推理的能力。現實任務中,用到自然語言處理技術的有如下幾個場景: 當我們新推出了一款產品,如何衡量它在市場的評價? 當我們看到受理人的申請貸款信件在猶豫是否應該貸款給受理人? 某某公司被報道出醜聞,是否會影響其明天的股價? 如何做翻譯系統,對話系統等?
一. 分詞與向量化
常見的分詞工具包括 :NLTK,ICTCLAS,JIEBA 。使用此類工具,你可以完成基本的分詞任務。但是,仍不能滿足日常需求,因此我們還需要進行詞幹化,同義詞替換操作,才能形成一個乾淨的分詞結果。例如使用精確模式的分詞結果:
我來到北京清華大學 ——> 我/ 來到/ 北京/ 清華大學 在應用各種模型之前,需要先進行向量化操作。向量化操作指用向量來表示詞彙的方法, 是無監督方法, 其規則是把語義相識或前後文相似的詞彙的向量距離更近; 可以檢視這篇文章python文字分析,這篇文章的末尾總結了常見的向量化操作。
二. 實體識別
使用NLTK可以很好的完成實體識別,注意實體識別中的評分規則,嚴格評分和寬鬆評分的結果會不一致。NLTK和ICTCLAS可以很好的完成此項功能。例如:
我用自然語言處理 ——–> 自然語言處理
三. 情感分析
使用NLTK ,TEXTBLOB,SNOWNLP可以很好的完成情感分析,注意使用預處理的模型,注意訓練的資料領域不一樣,所以結果請謹慎對待。例如:
我恨你 ——— > 0.1 我愛你 ———-> 0.9
四. 自動化摘要
NLTK,GENSIM,SUMY可以很好的完成自動化摘要,使用TextRank演算法和LSA演算法可以取得相對較好的結果。此網站 autotldr (u/autotldr) - Reddit 使用自動化摘要技術提取每篇新聞的摘要,是目前最好的商用產品之一。
五. 主題識別
根據文件中的詞語觀測變數推出主題隱藏變數是主題識別的核心思想,也即是廣為流傳的LDA模型。Gensim包可以很好的完成這項任務。參見我的這篇文章 python文字分析 中的任務3.
六. 總結
旨在做工程的, 關注的已不是演算法的實現本身, 而是更好的應用演算法模型工具, 來達到更好的效果. 但是特徵的處理還是最重要的, 特徵決定上限. 所以專注對資料的處理吧, 專注github;