您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python sklearn怎么對文本數據進行特征化提取的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python sklearn怎么對文本數據進行特征化提取文章都會有所收獲,下面我們一起來看看吧。
作用:對文本數據進行特征化
(句子、短語、單詞、字母)一般選用單詞作為特征值
方法一:CountVectorizer
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
返回詞頻矩陣(統計每個樣本特征詞出現的個數)
CountVectorizer.fit_transform(X)
X:文本或者包含文本字符串的可迭代對象
返回值:返回sparse矩陣
CountVectorizer.inverse_transform(X)
X:array數組或者sparse矩陣
返回值:轉換之前的數據格式
CountVectorizer.get_feature_names()
返回值:單詞列表
代碼展示:
from sklearn.feature_extraction.text import CountVectorizer def count_demo(): #文本特征抽取 data=["life is short, i like like python","life is too long,i dislike python"] #1、實例化一個轉換器類 transfer=CountVectorizer() #2、調用fit_transform() result=transfer.fit_transform(data) print("result:\n",result.toarray()) print("特征名字:\n", transfer.get_feature_names()) return None
方法二:TfidfVectorizer
關鍵詞:在某一個類別的文章中,出現的次數很多,但是在其他類別的文章中出現的次數很少稱為關鍵詞
Tf-idf文本特征提取
①TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現的概率高,并且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。
②TF-IDF作用:用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。
公式
①詞頻(term frequency,tf)指的是某一個給定的詞語在該文件中出現的頻率
②逆向文檔頻率(inverse document frequency,idf)是一個詞語普遍重要性的度量。某一特定詞語的idf,可以由總文件數目除以包含該詞語之文件數目,再將得到的商取以10為底的對數得到
tfidf = tf * idf
輸出的結果可以理解為重要程度
API
sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None,...)
返回詞的權重矩陣
TfidfVectorizer.fit_transform(X)
X:文本或者包含文本字符串的可迭代對象
返回值:返回sparse矩陣
TfidfVectorizer.inverse_transform(X)
X:array數組或者sparse矩陣
返回值:轉換之前數據格式
TfidfVectorizer.get_feature_names()
返回值:單詞列表
from sklearn.feature_extraction.text import TfidfVectorizer import jieba def cut_word(text): #中文分詞 #jieba.cut(text)返回的是生成器對象,用list強轉成列表 word=list(jieba.cut(text)) #轉成字符串 words=" ".join(word) return words def tfidf_demo(): data = ["今天很殘酷,明天更殘酷,后天會很美好,但絕大多數人都死在明天晚上,卻見不到后天的太陽,所以我們干什么都要堅持", "注重自己的名聲,努力工作、與人為善、遵守諾言,這樣對你們的事業非常有幫助", "服務是全世界最貴的產品,所以最佳的服務就是不要服務,最好的服務就是不需要服務"] data_new = [] # 將中文文本進行分詞 for sentence in data: data_new.append(cut_word(sentence)) # 1、實例化一個轉換器類 transfer = TfidfVectorizer() # 2、調用fit_transform() result = transfer.fit_transform(data_new) # 得到詞頻矩陣 是一個sparse矩陣 print("result:\n", result.toarray()) # 將sparse矩陣轉化為二維數組 print("特征名字:\n", transfer.get_feature_names()) return None
關于“Python sklearn怎么對文本數據進行特征化提取”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python sklearn怎么對文本數據進行特征化提取”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。