Python自然語言處理實戰(1):NLP基礎
從建模的角度看,為了方便計算機處理,自然語言可以被定義為一組規則或符號的集合,我們組合集合中的符號來傳遞各種資訊。自然語言處理研究表示語言能力、語言應用的模型,通過建立計算機框架來實現這樣的語言模型,並且不斷完善這樣的語言模型,還需要根據語言模型來設計各種實用的系統,並且探討這些實用技術的評測技術。從自然語言的角度出發,NLP基本可以分為兩個部分:自然語言處理以及自然語言的生成,演化為理解和生成文字的任務。
自然語言的理解是個綜合的系統工程,它又包含了很多細分學科,有代表聲音的音系學,代表構詞法的詞態學,代表語句結構的句法學,代表理解的語義句法學和語用學。
- 音系學:指代語言中發音的系統化組織。
- 詞態學:研究單詞構成以及相互之間的關係。
- 句法學:給定文字的哪部分是語法正確的。
- 語義學:給定文字的含義是什麼?
- 語用學:文字的目的是什麼?
自然語言生成恰恰相反,從結構化資料中以讀取的方式自動生成文字。該過程主要包含三個階段:文字規劃(完成結構化資料中的基礎內容規劃)、語句規劃(從結構化資料中組合語句來表達資訊流)、實現(產生語法通順的語句來表達文字)。
1.2、NLP的研究任務
- 機器翻譯:計算機具備將一種語言翻譯成另一種語言的能力。
- 情感分析:計算機能夠判斷使用者評論是否積極。
- 智慧問答:計算機能夠正確回答輸入的問題。
- 文摘生成:能夠準確歸納、總結併產生文字摘要。
- 文字分類:能夠採集各種文章,進行主題分析,從而進行自動分類。
- 輿論分析:能夠判斷目前輿論的導向。
- 知識圖譜:知識點相互連線而成的語義網路。
1.3、NLP相關知識的構成
- 分詞(segment):詞是最小的能夠獨立活動的有意義的語言成分,英文單詞之間是以空格作為自然分界符的,而漢語是以字位基本的書寫單位,詞語之間沒有明顯的區分標記,因此,中文詞語分析是中文分詞的基礎和關鍵。中文分詞常用的手段是基於字典的最長串匹配,據說可以解決85%的問題,但是歧義分詞很難。
- 詞性標註(part-of-speech tagging):標註的目的是表徵詞的一種隱藏狀態,隱藏狀態構成的轉移就構成了狀態轉移序列。
- 命名實體識別(NER, Named Entity Recognition):從文字中識別具有特定類別的實體(通常是名詞)
- 句法分析(syntax parsing):往往是一種基於規則的專家系統。目的是解析句子中各個成分的依賴關係,可以解決傳統詞袋模型不考慮上下文的問題。
- 指代消解(anaphora resolution):中文中代詞出現的頻率很高
- 情感識別(emotion recognition):本質上是分類問題,通常可以基於詞袋模型+分類器,或者現在流行的詞向量模型+RNN。經過測試發現後者比前者準確率略有提升。
- 糾錯(correction):具體做法有很多,可以基於N-Gram進行糾錯,也可以通過字典樹、有限狀態機等方法進行糾錯。
- 問答系統(QA system):往往需要語音識別、合成、自然語言理解、知識圖譜等多項技術的配合才會實現得比較好。
知識結構:NLP是研究人和機器之間用自然語言進行有效通訊的理解和方法。這需要很多跨學科的知識,需要語言學、統計學、最優化理論、機器學習、深度學習以及自然語言處理相關理論模型知識做基礎。
句法語義分析:針對目標句子,進行各種句法分析,如分詞、詞性標記、命名實體識別及連結、句法分析、語義角色識別和多義詞消歧等。
關鍵詞抽取:抽取目標文字中的主要資訊,比如從一條新聞中抽取關機資訊。主要是瞭解是誰、於何時、為何、對誰、做了何事、產生了有什麼結果。涉及實體識別、時間抽取、因果關係抽取等多項關鍵技術。
文字挖掘:主要包含了對文字的聚類、分類、資訊抽取、摘要、情感分析以及對挖掘的資訊和知識的視覺化、互動式的呈現介面。
機器翻譯:將輸入的源語言文字通過自動翻譯轉化為另一種語言的文字。根據輸入資料型別的不同,可細分位文字翻譯、語音翻譯、手語翻譯、圖形翻譯等。機器翻譯從最早的基於規則到二十年前的基於統計的方法,再到今天的基於深度學習(編解碼)的方法,逐漸形成了一套比較嚴謹的方法體系。
資訊檢索:對大規模的文件進行索引。可簡單對文件中的詞彙,賦以不同的權重來建立索引,也可使用演算法模型來建立更加深層的索引。查詢時,首先對輸入比進行分析,然後在索引裡面查詢匹配的候選文件,再根據一個排序機制把候選文件排序,最後輸出排序得分最高的文件。
問答系統:針對某個自然語言表達的問題,由問答系統給出一個精準的答案。需要對自然語言查詢語句進行語義分析,包括實體連結、關係識別,形成邏輯表示式,然後到知識庫中查詢可能的候選答案並通過一個排序機制找出最佳的答案。
對話系統:系統通過多回合對話,跟使用者進行聊天、回答、完成某項任務。主要涉及使用者意圖理解、通用聊天引擎、問答引擎、對話管理等技術。此外,為了體現上下文相關,要具備多輪對話能力。同時,為了體現個性化,對話系統還需要基於使用者畫像做個性化回覆。
相關文章
- 2023nlp影片教程大全 NLP自然語言處理教程 自然語言處理NLP從入門到專案實戰自然語言處理
- 自然語言處理NLP(四)自然語言處理
- 自然語言處理(NLP)概述自然語言處理
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- 《Python自然語言處理實戰》連結表Python自然語言處理
- NLP漢語自然語言處理入門基礎知識自然語言處理
- 自然語言處理(NLP)簡介 | NLP課程自然語言處理
- 自然語言處理NLP快速入門自然語言處理
- Pytorch系列:(六)自然語言處理NLPPyTorch自然語言處理
- 自然語言處理NLP(6)——詞法分析自然語言處理詞法分析
- 自然語言處理(NLP)路線圖 - kdnuggets自然語言處理
- 精通Python自然語言處理 1 :字串操作Python自然語言處理字串
- NLP漢語自然語言處理入門基礎知識介紹自然語言處理
- 【精讀】自然語言處理基礎之RNN自然語言處理RNN
- 《NLP漢語自然語言處理原理與實踐》學習四自然語言處理
- 【自然語言處理篇】--以NLTK為基礎講解自然語⾔處理的原理和基礎知識自然語言處理
- Python自然語言處理實戰(3):中文分詞技術Python自然語言處理中文分詞
- 詞!自然語言處理之詞全解和Python實戰!自然語言處理Python
- 史丹佛NLP團隊釋出最新自然語言處理Python庫自然語言處理Python
- Pytext 簡介——Facebook 基於 PyTorch 的自然語言處理 (NLP) 框架PyTorch自然語言處理框架
- 中文和英文NLP自然語言處理異同點分析自然語言處理
- NLP自然語言處理中的hanlp分詞例項自然語言處理HanLP分詞
- 如何將Python自然語言處理速度提升100倍:用spaCy/Cython加速NLPPython自然語言處理
- Python 自然語言處理(基於jieba分詞和NLTK)Python自然語言處理Jieba分詞
- NLP神經語言學的12條假設(不是自然語言處理哪個NLP哈)自然語言處理
- 精通Python自然語言處理 2 :統計語言建模Python自然語言處理
- 自然語言處理的最佳實踐自然語言處理
- 「NLP」一文彙總自然語言處理主要研究方向自然語言處理
- 自然語言處理歷史史詩:NLP的正規化演變與Python全實現自然語言處理Python
- Python自然語言處理實戰(4):詞性標註與命名實體識別Python自然語言處理詞性標註
- 自然語言處理(NLP)- 一個英文拼寫糾錯系統自然語言處理
- 自然語言處理NLP(8)——句法分析b:完全句法分析自然語言處理
- HanLP 自然語言處理 for nodejsHanLP自然語言處理NodeJS
- 精通Python自然語言處理 3 :形態學Python自然語言處理
- hanlp自然語言處理包的基本使用--pythonHanLP自然語言處理Python
- 自然語言處理 NLP 基本概念大全,讓非技術也能看懂 NLP自然語言處理
- 自然語言處理NLP(7)——句法分析a:Chomsky(喬姆斯基)形式文法自然語言處理
- Facebook 自然語言處理新突破:新模型能力趕超人類 & 超難 NLP 新基準自然語言處理模型