1. 程式人生 > >機器學習-文字特徵值抽取,中文分詞

機器學習-文字特徵值抽取,中文分詞

在文字特徵值抽取過程中,將用到jieba分詞

特點

支援三種分詞模式:

  • 精確模式,試圖將句子最精確地切開,適合文字分析;
  • 全模式,把句子中所有的可以成詞的詞語都掃描出來,速度非常快,但是不能解決歧義。
  • 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。 支援繁體分詞
  • 支援自定義詞典
  • MIT 授權協議

安裝方法

pip install jieba

官網

https://pypi.org/project/jieba/

Demo

from sklearn.feature_extraction import DictVectorizer
from sklearn.feature_extraction.text import CountVectorizer
import jieba

def cutword():
    
    con1 = jieba.cut("人從來不是一成不變的,生活會追著你,一而再的脫胎換骨,只要願意,你永遠有機會,成為不斷前行的人,最終活成自己喜歡的模樣。")
    
    con2 = jieba.cut("自己喜歡的未必是自己擅長的,自己擅長的又未必是自己喜歡的。當你發現你不擅長這件事情的時候,你就要努力想清楚:我應該幹什麼?我能幹什麼?我可以幹什麼?")
    
    con3 = jieba.cut("朋友是生命的叢林,是心靈歇腳的驛站,是收藏心事的寓所,是儲蓄感情的行囊,不管人生路上幾多風雨,朋友如傘,伴你一路晴空!願你的天空更藍、人生最美!")
    
    # 轉換成列表
    content1 = list(con1)
    content2 = list(con2)
    content3 = list(con3)
    
    # 把列表轉換成字串
    c1 = ' '.join(content1)
    c2 = ' '.join(content2)
    c3 = ' '.join(content3)
    
    return c1,c2,c3


def hanzivec():
    """
    
    中文特徵值化
    :return: None
    """
    c1, c2, c3 = cutword()
    
    print(c1,c2,c3)
    
    cv = CountVectorizer()
    
    data = cv.fit_transform([c1,c2,c3])
    
    print(cv.get_feature_names())
    
    print(data.toarray())
    
    return None


if __name__ == "__main__":
    hanzivec()

結果如下

在這裡插入圖片描述