1. 程式人生 > >文字處理-分詞、向量化、TF-IDF理論和實現

文字處理-分詞、向量化、TF-IDF理論和實現

分詞

在做文字挖掘的時候,首先要做的預處理就是分詞。英文單詞天然有空格隔開容易按照空格分詞,但是也有時候需要把多個單詞做為一個分詞,比如一些名詞如“New York”,需要做為一個詞看待。而中文由於沒有空格,分詞就是一個需要專門去解決的問題了。無論是英文還是中文,分詞的原理都是類似的,本文就對文字挖掘時的分詞原理做一個總結。

1. 分詞的基本原理

    現代分詞都是基於統計的分詞,而統計的樣本內容來自於一些標準的語料庫。假如有一個句子:“小明來到荔灣區”,我們期望語料庫統計後分詞的結果是:"小明/來到/荔灣/區",而不是“小明/來到/荔/灣區”。那麼如何做到這一點呢?

    從統計的角度,我們期望"小明/來到/荔灣/區"這個分詞後句子出現的概率要比“小明/來到/荔/灣區”大。如果用數學的語言來說說,如果有一個句子S

S,它有m種分詞選項如下:

A11A12...A1n1A11A12...A1n1A21A22...A2n2A21A22...A2n2........................Am1Am2...AmnmAm1Am2...Amnm

    其中下標nini代表第ii種分詞的詞個數。如果我們從中選擇了最優的第rr種分詞方法,那麼這種分詞方法對應的統計分佈概率應該最大,即:

r=argmaxiP(Ai1,Ai2,...,Aini)r=argmax⏟iP(Ai1,Ai2,...,Aini)

    但是我們的概率分佈P(Ai1,Ai2,...,Aini)P(Ai1,Ai2,...,Aini)

並不好求出來,因為它涉及到nini個分詞的聯合分佈。在NLP中,為了簡化計算,我們通常使用馬爾科夫假設,即每一個分詞出現的概率僅僅和前一個分詞有關,即:

P(Aij|Ai1,Ai2,...,Ai(j1))=P(Aij|Ai(j1))P(Aij|Ai1,Ai2,...,Ai(j−1))=P(Aij|Ai(j−1))

    在前面我們講MCMC取樣時,也用到了相同的假設來簡化模型複雜度。使用了馬爾科夫假設,則我們的聯合分佈就好求了,即:

P(Ai1,Ai2,...,Aini)=P(Ai1)P(Ai2|Ai1)P(Ai3|Ai2)...P(Aini|Ai(ni1))P(Ai1,Ai2,...,Aini)=P(Ai1)P(Ai2|Ai1)P(Ai3|Ai2)...P(Aini|Ai(ni−1))

    而通過我們的標準語料庫,我們可以近似的計算出所有的分詞之間的二元條件概率,比如任意兩個詞

相關推薦

文字處理-量化TF-IDF理論實現

分詞在做文字挖掘的時候,首先要做的預處理就是分詞。英文單詞天然有空格隔開容易按照空格分詞,但是也有時候需要把多個單詞做為一個分詞,比如一些名詞如“New York”,需要做為一個詞看待。而中文由於沒有空格,分詞就是一個需要專門去解決的問題了。無論是英文還是中文,分詞的原理都是

Numpy常用概念-對象的副本視圖量化廣播機制

一維數組 運算 shape nbsp 兼容性 需要 for numpy 方式 一、引言 在我們操作數組的時候,返回的是新數組還是原數組的鏈接,我們就需要了解對象副本和視圖的區別。 向量化和廣播是numpy內部實現的基礎。 二、對象副本和視圖 我們應該註意到,在操作數組的時候

python︱六款中文模組嘗試:jiebaTHULACSnowNLPpynlpirCoreNLPpyLTP

**公眾號“素質雲筆記”定期更新部落格內容:** ![這裡寫圖片描述](https://img-blog.csdn.net/20180226155348545?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2lu

NLP+詞法系列(二)︱中文技術簡述深度學習實踐(CIPS2016超多案例)

詞法分析是將輸入句子從字序列轉化為詞和詞性序列, 句法分析將輸入句子從詞序列形式轉化為樹狀結構,從而刻畫句子的詞法和句法結構。 一、詞法分析的難題 1、詞的定義和生詞問題、未登入詞(新詞) 特別是在網際網路時代,

【深度學習】量化表示

model ref res font 技術 訓練 lin 挖掘 body 如果要一句話概括詞向量的用處,就是提供了一種數學化的方法,把自然語言這種符號信息轉化為向量形式的數字信息。這樣就把自然語言理解的問題要轉化為機器學習的問題。 其中最常用的詞向量模型無非是 one-h

Python文本處理: 雲圖

wordcloud jieba python3 詞雲 分詞 ‘‘‘ import os import jieba # 分詞包 import numpy # numpy計算包 import codecs # codecs提供open方法指定打開的文件的語言編碼,它會在讀取時自動轉換為內

python3-對某目錄下的文字檔案

from pathlib import Path import os import re pathName='./' fnLst=list(filter(lambda x:not x.is_dir(),Path(pathName).glob('**/*.txt'))) print(fnLst) for fn

jQuery對DOM元素的向上同級遍歷過濾

jQuery的向下遍歷 例子: <script src="../JS/Extend.js"></script> <script src="../JS/my.js"></script> <link

OpenNLP:駕馭文字那些事

/** * 5.序列標註:Chunker * @deprecated 通過使用標記生成器生成的tokens分為一個句子劃分為一組塊。What chunker does is to partition a sentence to a set of chunks by using the tok

hanlp中文自然語言處理方法介紹

自然語言處理在大資料以及近年來大火的人工智慧方面都有著非同尋常的意義。那麼,什麼是自然語言處理呢?在沒有接觸到大資料這方面的時候,也只是以前在學習計算機方面知識時聽說過自然語言處理。書本上對於自然語言處理的定義或者是描述太多專業化。換一個通俗的說法,自然語言處理就是把我們人類

【HEVC學習與研究】42HEVC幀內編碼的原理實現(下)

4、編碼幀內預測模式 大量增加可選擇的預測模式可以提供更高的編碼效率,同時要求編碼預測模式有更加高效的方法降低更多模式帶來的負擔。與H.264採用一個最可能模式不同的是,對於亮度分量,三個最可能模式用於預測實際的幀內預測模式。同時,也考慮了三個最可能模式中的冗餘資訊,重複的

【HEVC學習與研究】39HEVC幀內編碼的原理實現(上)

【前面N篇博文都講了一些HEVC幀內預測的程式碼結構和簡單的方法,但是尚未對整體的演算法和實現做一個比較完整的描述。本篇藉助參考文獻《High Efficiency Video Coding (HEVC) -- Algorithms and Architectures》的

圖文+程式碼分析:caffe中全連線層Pooling層Relu層的反向傳播原理實現

1.全連線層反向傳播 設CC為loss 全連線層輸入:(bottom_data) aa 全連線層輸出:(top_data) zz 假設 aa維度K_, zz維度N_,則權值矩陣維度為N_行*K_列,batchsize=M_ 全連線層每個輸出zi=b+∑

橢圓濾波器與巴特沃斯切比雪夫的比較實現

橢圓濾波器(Elliptic filter)又稱考爾濾波器(Cauer filter):這是在通帶和阻帶等波紋的一種濾波器。橢圓濾波器相比其他型別的濾波器,在階數相同的條件下有著最小的通帶和阻帶波動。它在通帶和阻帶的波動相同,這一點區別於在通帶和阻帶都平坦的巴特沃斯濾波器,

【數字影象處理系列四】影象資料集增強方式總結實現

本系列python版本:python2.7.15 本系列opencv-python版本:opencv-python3.4.2.17 本系列使用的開發環境是jupyter notebook,是一個python的互動式開發環境,測試十分方便,並集成了vim操作,

自然語言處理命名主體識別詞性語法分析-stanfordcorenlp-NER(二)

轉載請註明出處:https://blog.csdn.net/HHTNAN 在前面我們介紹了Stanford CoreNLP, 自然語言處理之命名實體識別-tanfordcorenlp-NER(一) 功能列表 工具以及對各種語言的支援如下表(英文和中文支援的最好),分別對應:

使用結巴(jieba)對自然語言進行特徵預處理(PythonJava 實現

一、前言 之前使用基於 Python 語言的 Spark 進行機器學習,程式設計起來是十分簡單。 ① 但是演算法部署到雲伺服器上,是一個障礙。 ② 得藉助 Flask/Django 等 Python W

機器學習筆記筆記之三——文字型別處理-袋法TF-IDF理解

  在面對文字型特徵時,大致可以分為兩種。    一是列舉型別,比如:男女,小學生初中生高中生大學生……這種型別下類別一般不會超過百種,那麼就可以使用 啞編碼(one-hot)來處理。   另一種就是真正意義上的文字,一條評論或是一篇文章。對於這樣的資

自然語言處理(NLP) 一: 分句詞幹提取

需要安裝nltk自然語言處理包,anaconda預設已經安裝了 還需要安裝nltk語料庫:http://www.nltk.org/data.html 自然語言基礎知識: 1、分詞 魚香肉絲裡面多放點辣椒 對稱加密需要DES處理引擎 天兒冷了多穿點

python自然語言處理(一)之中文處理統計詞頻

一個小的嘗試。。資料來源資料集 一共200條關於手機的中文評論,以XML格式儲存。分詞工具 python-jieba預處理包括去停用詞、去標點符號和數字去停用詞:使用的是他人總結的 停用詞表去標點符號和數字:用正則表示式。原本打算的是中文標點符號從網上覆制,英文標點符號用st