1. 程式人生 > 實用技巧 >P6 文字特徵抽取以及中文問題

P6 文字特徵抽取以及中文問題

http://bilibili.com/video/BV184411Q7Ng?p=6

"""
演示字典的特徵抽取,
DictVectorizer是一個類的名字
"""
from sklearn.feature_extraction import DictVectorizer


def dictvec():
    """
    字典資料抽取
    :return:
    加入引數sparse=False可以把轉換成的資料轉換成陣列
    """
    dict=DictVectorizer(sparse=False) #例項化 sparse=False
    data=dict.fit_transform([{'
city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}]) # 呼叫fit_transform就是把字串資料轉化成特徵,返回的是個data print(dict.inverse_transform(data)) return None if __name__=="__main__": dictvec()

執行結果:

C:\Users\TJ\AppData\Local\Programs\Python\Python37\python.exe D:/qcc/python/mnist/feature_abstract.py
[{'city=北京': 1.0, 'temperature': 100.0}, {'city=上海': 1.0, 'temperature': 60.0}, {'city=深圳': 1.0, 'temperature': 30.0}]

Process finished with exit code 0

"""
演示字典的特徵抽取,
DictVectorizer是一個類的名字
 CountVectorizer是一個類的名字,可以用來例項化一個變數
"""
from sklearn.feature_extraction import DictVectorizer
from sklearn.feature_extraction.text import CountVectorizer

def dictvec():
    """
    字典資料抽取
    :return:
    加入引數sparse=False可以把轉換成的資料轉換成陣列
    
""" dict=DictVectorizer(sparse=False) #例項化 sparse=False data=dict.fit_transform([{'city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}]) # 呼叫fit_transform就是把字串資料轉化成特徵,返回的是個data print(dict.inverse_transform(data)) return None def countvec(): """ 對文字進行特徵值化 :return: """ cv=CountVectorizer() #例項化一個物件 data=cv.fit_transform(["life is short,i like python","life is too long,i dislike python"]) #逗號隔開的代表兩篇文章,呼叫方法後有一個返回值 print(cv.get_feature_names()) print(data.toarray()) return None if __name__=="__main__": countvec()

執行結果:

C:\Users\TJ\AppData\Local\Programs\Python\Python37\python.exe D:/qcc/python/mnist/feature_abstract.py
['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too']
[[0 1 1 1 0 1 1 0]
[1 1 1 0 1 1 0 1]]

Process finished with exit code 0

註解:

  1. 統計兩篇文章中所有單詞,返回一個列表,重複的單詞只統計一次。
  2. 執行結果的下面的二維矩陣說明:針對每篇文章,在詞的列表裡面統計每個詞出現的次數。