數(shù)據(jù)挖掘:特征工程:文本特征提取教程_第1頁
數(shù)據(jù)挖掘:特征工程:文本特征提取教程_第2頁
數(shù)據(jù)挖掘:特征工程:文本特征提取教程_第3頁
數(shù)據(jù)挖掘:特征工程:文本特征提取教程_第4頁
數(shù)據(jù)挖掘:特征工程:文本特征提取教程_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)挖掘:特征工程:文本特征提取教程1數(shù)據(jù)挖掘:特征工程:文本特征提取1.1文本預(yù)處理文本預(yù)處理是文本特征提取前的重要步驟,它能夠提高后續(xù)特征工程的效率和效果。下面將詳細(xì)介紹文本預(yù)處理的幾個關(guān)鍵環(huán)節(jié):文本清洗、分詞與詞干化、去除停用詞、詞頻統(tǒng)計。1.1.1文本清洗文本清洗的目的是去除文本中的噪聲,如HTML標(biāo)簽、特殊字符、數(shù)字、標(biāo)點(diǎn)符號等,保留有意義的文本信息。1.1.1.1示例代碼importre

defclean_text(text):

"""

清洗文本,去除HTML標(biāo)簽和特殊字符

:paramtext:原始文本

:return:清洗后的文本

"""

#去除HTML標(biāo)簽

text=re.sub('<[^>]*>','',text)

#去除非字母字符

text=re.sub('[^a-zA-Z]','',text)

returntext

#示例數(shù)據(jù)

text="<p>這是一個測試文本,包含HTML標(biāo)簽和特殊字符!</p>"

cleaned_text=clean_text(text)

print(cleaned_text)#輸出:'這是一個測試文本包含HTML標(biāo)簽和特殊字符'1.1.2分詞與詞干化分詞是將連續(xù)的文本切分成獨(dú)立的詞匯單元。詞干化則是將詞匯還原為其基本形式,減少詞匯的多樣性,提高特征的通用性。1.1.2.1示例代碼fromnltk.tokenizeimportword_tokenize

fromnltk.stemimportPorterStemmer

deftokenize_and_stem(text):

"""

分詞并進(jìn)行詞干化

:paramtext:清洗后的文本

:return:詞干化后的詞匯列表

"""

stemmer=PorterStemmer()

#分詞

words=word_tokenize(text)

#詞干化

stemmed_words=[stemmer.stem(word)forwordinwords]

returnstemmed_words

#示例數(shù)據(jù)

text="這是一個測試文本,包含HTML標(biāo)簽和特殊字符!"

cleaned_text=clean_text(text)

stemmed_words=tokenize_and_stem(cleaned_text)

print(stemmed_words)#輸出:['這','是','一','個','測試','文本','包含','html','標(biāo)簽','和','特殊','字符']1.1.3去除停用詞停用詞是指在信息檢索中通常被過濾掉的詞,如“的”、“是”、“在”等,這些詞在文本中出現(xiàn)頻率高,但對文本內(nèi)容的區(qū)分度貢獻(xiàn)較小。1.1.3.1示例代碼fromnltk.corpusimportstopwords

defremove_stopwords(words):

"""

去除停用詞

:paramwords:分詞后的詞匯列表

:return:去除停用詞后的詞匯列表

"""

#加載停用詞列表

stop_words=set(stopwords.words('english'))

#去除停用詞

filtered_words=[wordforwordinwordsifword.lower()notinstop_words]

returnfiltered_words

#示例數(shù)據(jù)

words=['這','是','一','個','測試','文本','包含','html','標(biāo)簽','和','特殊','字符']

filtered_words=remove_stopwords(words)

print(filtered_words)#輸出:['這','測試','文本','包含','html','標(biāo)簽','特殊','字符']1.1.4詞頻統(tǒng)計詞頻統(tǒng)計是計算文本中每個詞出現(xiàn)的頻率,用于后續(xù)的特征選擇和權(quán)重計算。1.1.4.1示例代碼fromcollectionsimportCounter

defcount_words(words):

"""

統(tǒng)計詞匯頻率

:paramwords:去除停用詞后的詞匯列表

:return:詞頻統(tǒng)計結(jié)果

"""

#統(tǒng)計詞頻

word_counts=Counter(words)

returnword_counts

#示例數(shù)據(jù)

words=['這','測試','文本','包含','html','標(biāo)簽','特殊','字符']

word_counts=count_words(words)

print(word_counts)#輸出:Counter({'這':1,'測試':1,'文本':1,'包含':1,'html':1,'標(biāo)簽':1,'特殊':1,'字符':1})以上步驟是文本預(yù)處理的基本流程,通過這些步驟,可以將原始文本轉(zhuǎn)化為可用于特征工程的詞匯列表。在實際應(yīng)用中,可能還需要根據(jù)具體需求進(jìn)行進(jìn)一步的處理,如詞性標(biāo)注、命名實體識別等,以提取更豐富的文本特征。2文本特征編碼文本特征編碼是將文本數(shù)據(jù)轉(zhuǎn)換為機(jī)器學(xué)習(xí)算法可以理解的數(shù)值形式的過程。在數(shù)據(jù)挖掘和自然語言處理中,這是關(guān)鍵的一步,因為原始文本數(shù)據(jù)(如單詞和句子)不能直接輸入到大多數(shù)機(jī)器學(xué)習(xí)模型中。下面,我們將深入探討幾種常見的文本特征編碼技術(shù):詞袋模型、TF-IDF、詞嵌入和N-gram模型。2.1詞袋模型詞袋模型(BagofWords,BoW)是一種將文本轉(zhuǎn)換為向量的簡單方法。它忽略了單詞在文本中的順序,只關(guān)注單詞的出現(xiàn)頻率。2.1.1原理詞袋模型首先創(chuàng)建一個詞匯表,包含所有文檔中出現(xiàn)的單詞。然后,對于每篇文檔,它會統(tǒng)計詞匯表中每個單詞的出現(xiàn)次數(shù),形成一個向量。2.1.2示例代碼fromsklearn.feature_extraction.textimportCountVectorizer

#示例文本數(shù)據(jù)

documents=[

"我喜歡吃蘋果",

"蘋果很好吃",

"我不喜歡吃香蕉",

"香蕉和蘋果都很好吃"

]

#創(chuàng)建CountVectorizer對象

vectorizer=CountVectorizer()

#將文本數(shù)據(jù)轉(zhuǎn)換為詞袋模型

bow=vectorizer.fit_transform(documents)

#打印詞匯表

print(vectorizer.get_feature_names_out())

#打印詞袋模型的矩陣

print(bow.toarray())2.1.3解釋在這個例子中,我們使用了sklearn庫中的CountVectorizer類來實現(xiàn)詞袋模型。documents列表包含了四篇中文文檔。fit_transform方法創(chuàng)建了詞匯表,并統(tǒng)計了每篇文檔中每個單詞的出現(xiàn)次數(shù)。最后,我們打印了詞匯表和詞袋模型的矩陣。2.2TF-IDFTF-IDF(TermFrequency-InverseDocumentFrequency)是一種加權(quán)技術(shù),用于評估一個詞在文檔中的重要性。它結(jié)合了詞頻(TF)和逆文檔頻率(IDF)。2.2.1原理TF-IDF值由兩部分組成:詞頻(TF)和逆文檔頻率(IDF)。詞頻是單詞在文檔中出現(xiàn)的頻率,而逆文檔頻率是文檔頻率的倒數(shù),用于衡量單詞的普遍重要性。2.2.2示例代碼fromsklearn.feature_extraction.textimportTfidfVectorizer

#使用相同的示例文本數(shù)據(jù)

documents=[

"我喜歡吃蘋果",

"蘋果很好吃",

"我不喜歡吃香蕉",

"香蕉和蘋果都很好吃"

]

#創(chuàng)建TfidfVectorizer對象

tfidf_vectorizer=TfidfVectorizer()

#將文本數(shù)據(jù)轉(zhuǎn)換為TF-IDF模型

tfidf=tfidf_vectorizer.fit_transform(documents)

#打印TF-IDF矩陣

print(tfidf.toarray())2.2.3解釋TfidfVectorizer類用于實現(xiàn)TF-IDF模型。在這個例子中,我們使用了與詞袋模型相同的文本數(shù)據(jù)。fit_transform方法計算了每篇文檔中每個單詞的TF-IDF值。與詞袋模型不同,TF-IDF模型考慮了單詞在整個文檔集合中的頻率,從而更好地反映了單詞的重要性。2.3詞嵌入詞嵌入是一種將單詞轉(zhuǎn)換為固定長度向量的方法,這些向量能夠捕捉單詞的語義信息和上下文關(guān)系。2.3.1原理詞嵌入通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)單詞的向量表示,使得語義相似的單詞在向量空間中距離較近。常見的詞嵌入方法包括Word2Vec和GloVe。2.3.2示例代碼importgensim.downloaderasapi

#下載預(yù)訓(xùn)練的詞嵌入模型

model=api.load("word2vec-zh")

#示例單詞

word="蘋果"

#獲取單詞的向量表示

vector=model[word]

#打印向量

print(vector)2.3.3解釋在這個例子中,我們使用了gensim庫來加載預(yù)訓(xùn)練的Word2Vec模型。load函數(shù)用于下載模型,model[word]則獲取了單詞“蘋果”的向量表示。詞嵌入模型通常需要大量的文本數(shù)據(jù)進(jìn)行訓(xùn)練,因此使用預(yù)訓(xùn)練模型是一種常見的做法。2.4N-gram模型N-gram模型是一種統(tǒng)計語言模型,用于預(yù)測序列中下一個單詞的概率。在特征工程中,N-gram用于捕捉單詞的組合特征。2.4.1原理N-gram模型考慮了連續(xù)的N個單詞的組合,N可以是1(稱為unigram)、2(稱為bigram)、3(稱為trigram)等。這些組合可以作為特征輸入到機(jī)器學(xué)習(xí)模型中。2.4.2示例代碼fromsklearn.feature_extraction.textimportCountVectorizer

#示例文本數(shù)據(jù)

documents=[

"我喜歡吃蘋果",

"蘋果很好吃",

"我不喜歡吃香蕉",

"香蕉和蘋果都很好吃"

]

#創(chuàng)建CountVectorizer對象,使用bigram

vectorizer=CountVectorizer(ngram_range=(2,2))

#將文本數(shù)據(jù)轉(zhuǎn)換為bigram模型

bigram=vectorizer.fit_transform(documents)

#打印bigram模型的矩陣

print(bigram.toarray())2.4.3解釋在這個例子中,我們使用了CountVectorizer類來實現(xiàn)bigram模型。通過設(shè)置ngram_range=(2,2),我們告訴模型只考慮連續(xù)的兩個單詞的組合。fit_transform方法創(chuàng)建了bigram模型,并統(tǒng)計了每篇文檔中每個bigram的出現(xiàn)次數(shù)。與詞袋模型相比,N-gram模型能夠捕捉到單詞之間的順序關(guān)系,從而提供更豐富的文本特征。以上四種文本特征編碼技術(shù)各有優(yōu)缺點(diǎn),選擇哪種方法取決于具體的應(yīng)用場景和數(shù)據(jù)特性。詞袋模型和TF-IDF模型簡單易用,但忽略了單詞的順序信息。詞嵌入模型能夠捕捉單詞的語義信息,但需要大量的訓(xùn)練數(shù)據(jù)和計算資源。N-gram模型介于兩者之間,能夠捕捉到一定程度的順序信息,但特征空間會隨著N的增加而迅速膨脹。在實際應(yīng)用中,通常會結(jié)合使用多種方法,以獲得更全面的文本特征表示。3高級文本特征提取技術(shù)3.1主題模型主題模型是一種統(tǒng)計模型,用于發(fā)現(xiàn)文檔集合或語料庫中的抽象主題。它假設(shè)文檔由多個主題組成,每個主題由一組詞語的概率分布表示。最著名的主題模型是LatentDirichletAllocation(LDA)。3.1.1示例:使用Python的Gensim庫進(jìn)行LDA主題建模fromgensimimportcorpora,models

fromgensim.utilsimportsimple_preprocess

fromnltk.corpusimportstopwords

importnltk

nltk.download('stopwords')

#示例數(shù)據(jù)

documents=[

"數(shù)據(jù)挖掘是計算機(jī)科學(xué)的一個領(lǐng)域,涉及從大量數(shù)據(jù)中發(fā)現(xiàn)模式。",

"特征工程是機(jī)器學(xué)習(xí)中一個重要的步驟,用于從原始數(shù)據(jù)中提取特征。",

"文本特征提取技術(shù)在自然語言處理中至關(guān)重要。",

"主題模型可以幫助我們理解文檔集合中的主要話題。",

"情感分析用于識別和提取文本中的情感信息。",

"命名實體識別是識別文本中具有特定意義的實體。",

"依存句法分析用于理解句子中詞語之間的關(guān)系。"

]

#文本預(yù)處理

defpreprocess(text):

result=[]

fortokeninsimple_preprocess(text):

iftokennotinstopwords.words('chinese'):

result.append(token)

returnresult

#創(chuàng)建詞典和語料庫

texts=[preprocess(doc)fordocindocuments]

dictionary=corpora.Dictionary(texts)

corpus=[dictionary.doc2bow(text)fortextintexts]

#訓(xùn)練LDA模型

lda_model=models.LdaModel(corpus,num_topics=2,id2word=dictionary,passes=10)

#打印主題

foridx,topicinlda_model.print_topics(-1):

print('Topic:{}\nWords:{}'.format(idx,topic))3.1.2解釋此代碼示例首先預(yù)處理文本數(shù)據(jù),去除停用詞。然后,使用Gensim庫創(chuàng)建詞典和語料庫,最后訓(xùn)練LDA模型并打印出主題及其主要詞語。3.2情感分析情感分析旨在識別和提取文本中的情感信息,如正面、負(fù)面或中性情感。它廣泛應(yīng)用于社交媒體監(jiān)控、產(chǎn)品評論分析等領(lǐng)域。3.2.1示例:使用Python的TextBlob庫進(jìn)行情感分析fromtextblobimportTextBlob

#示例數(shù)據(jù)

text="我非常喜歡數(shù)據(jù)挖掘和特征工程,它們?yōu)槲业捻椖刻峁┝司薮蟮膸椭?

#創(chuàng)建TextBlob對象

blob=TextBlob(text)

#打印情感極性和主觀性

print("Polarity:",blob.sentiment.polarity)

print("Subjectivity:",blob.sentiment.subjectivity)3.2.2解釋TextBlob庫提供了一個簡單的方法來分析文本的情感。sentiment.polarity返回一個介于-1(負(fù)面)和1(正面)之間的值,而sentiment.subjectivity返回一個介于0(客觀)和1(主觀)之間的值。3.3命名實體識別命名實體識別(NER)是自然語言處理中的一個任務(wù),用于識別文本中具有特定意義的實體,如人名、地名、組織名等。3.3.1示例:使用Python的Spacy庫進(jìn)行命名實體識別importspacy

#加載中文模型

nlp=spacy.load('zh_core_web_sm')

#示例數(shù)據(jù)

text="李華在清華大學(xué)學(xué)習(xí),他計劃去美國斯坦福大學(xué)深造。"

#進(jìn)行命名實體識別

doc=nlp(text)

#打印識別到的實體

forentindoc.ents:

print(ent.text,ent.label_)3.3.2解釋Spacy庫提供了強(qiáng)大的命名實體識別功能。在上述代碼中,我們加載了中文模型,對文本進(jìn)行處理,并打印出識別到的實體及其類型。3.4依存句法分析依存句法分析用于理解句子中詞語之間的關(guān)系,它可以幫助我們解析句子的結(jié)構(gòu)和語義。3.4.1示例:使用Python的Spacy庫進(jìn)行依存句法分析importspacy

#加載中文模型

nlp=spacy.load('zh_core_web_sm')

#示例數(shù)據(jù)

text="數(shù)據(jù)挖掘技術(shù)在特征工程中起著關(guān)鍵作用。"

#進(jìn)行依存句法分析

doc=nlp(text)

#打印依存關(guān)系

fortokenindoc:

print(token.text,token.dep_,token.head.text)3.4.2解釋在代碼示例中,我們使用Spacy的中文模型對文本進(jìn)行依存句法分析。token.dep_表示詞語的依存關(guān)系,token.head.text表示詞語所依附的詞語。通過這些高級文本特征提取技術(shù),我們可以從文本數(shù)據(jù)中挖掘出更深層次的信息,為機(jī)器學(xué)習(xí)和自然語言處理任務(wù)提供更豐富的特征。4數(shù)據(jù)挖掘:特征工程:文本特征提取-特征選擇與降維4.1卡方檢驗卡方檢驗(Chi-SquareTest)是一種統(tǒng)計學(xué)方法,用于評估特征與類別之間的相關(guān)性。在文本特征提取中,卡方檢驗可以用來確定哪些詞與特定的類別關(guān)系最密切,從而幫助我們選擇最相關(guān)的特征。4.1.1原理卡方檢驗基于觀察值與期望值之間的差異來計算卡方統(tǒng)計量,其公式為:χ其中,Oi是觀察值,E4.1.2示例代碼假設(shè)我們有以下數(shù)據(jù)集,包含兩個類別(positive,negative)和四個詞(good,bad,happy,sad)的文檔頻率:importnumpyasnp

fromsklearn.feature_selectionimportchi2

fromsklearn.feature_extraction.textimportCountVectorizer

#文本數(shù)據(jù)

texts=[

"Ifeelgoodtoday",

"It'sabadday",

"Iamsohappy",

"Iamfeelingsad",

"Goodthingshappen",

"Badthingshappen",

"Happymoments",

"Sadmoments",

"Goodandhappy",

"Badandsad"

]

#類別標(biāo)簽

labels=[1,0,1,0,1,0,1,0,1,0]

#將文本轉(zhuǎn)換為詞頻矩陣

vectorizer=CountVectorizer()

X=vectorizer.fit_transform(texts)

#執(zhí)行卡方檢驗

chi_scores,_=chi2(X,labels)

#獲取特征名稱

feature_names=vectorizer.get_feature_names_out()

#打印卡方檢驗得分最高的特征

forscore,featureinsorted(zip(chi_scores,feature_names),reverse=True):

print(f"{feature}:{score}")4.1.3解釋上述代碼首先使用CountVectorizer將文本數(shù)據(jù)轉(zhuǎn)換為詞頻矩陣。然后,使用chi2函數(shù)計算每個特征的卡方檢驗得分。最后,打印出得分最高的特征,這通常意味著這些特征與類別標(biāo)簽有較強(qiáng)的關(guān)聯(lián)性。4.2互信息互信息(MutualInformation,MI)是衡量兩個隨機(jī)變量之間依賴性的信息論指標(biāo)。在文本特征工程中,互信息可以用來評估詞與類別之間的相關(guān)性,從而幫助選擇最具信息量的特征。4.2.1原理互信息定義為:I其中,X和Y是兩個隨機(jī)變量,px,y是它們的聯(lián)合概率,p4.2.2示例代碼使用互信息進(jìn)行特征選擇的代碼示例:fromsklearn.feature_selectionimportmutual_info_classif

fromsklearn.feature_extraction.textimportTfidfVectorizer

#使用TfidfVectorizer轉(zhuǎn)換文本數(shù)據(jù)

vectorizer=TfidfVectorizer()

X=vectorizer.fit_transform(texts)

#計算互信息

mi_scores=mutual_info_classif(X,labels)

#打印互信息得分最高的特征

forscore,featureinsorted(zip(mi_scores,feature_names),reverse=True):

print(f"{feature}:{score}")4.2.3解釋此代碼使用TfidfVectorizer來轉(zhuǎn)換文本數(shù)據(jù),這可以更好地反映詞的重要性。然后,使用mutual_info_classif函數(shù)計算每個特征的互信息得分。最后,打印出得分最高的特征,這些特征對于分類任務(wù)來說是最有信息量的。4.3主成分分析主成分分析(PrincipalComponentAnalysis,PCA)是一種用于數(shù)據(jù)降維的統(tǒng)計方法。在文本特征工程中,PCA可以用來減少特征維度,同時保留數(shù)據(jù)的大部分信息。4.3.1原理PCA通過線性變換將原始特征映射到新的特征空間,新特征是原始特征的線性組合,且新特征之間是正交的。PCA的目標(biāo)是找到數(shù)據(jù)的主成分,即數(shù)據(jù)的方差最大的方向。4.3.2示例代碼使用PCA進(jìn)行文本數(shù)據(jù)降維的代碼示例:fromsklearn.decompositionimportPCA

#使用PCA降維

pca=PCA(n_components=2)

X_pca=pca.fit_transform(X.toarray())

#打印降維后的數(shù)據(jù)

print(X_pca)4.3.3解釋此代碼使用PCA類將詞頻矩陣降維到兩個主成分。n_components參數(shù)指定了降維后的維度。降維后的數(shù)據(jù)可以用于可視化或作為輸入特征進(jìn)行后續(xù)的機(jī)器學(xué)習(xí)任務(wù)。4.4LDA降維潛在狄利克雷分配(LatentDirichletAllocation,LDA)是一種主題模型,用于發(fā)現(xiàn)文檔集合中的潛在主題。在文本特征工程中,LDA可以用來降維,同時保留文本的主題信息。4.4.1原理LDA假設(shè)文檔由多個主題組成,每個主題由一組詞的概率分布表示。通過LDA模型,我們可以將文檔表示為主題的分布,從而實現(xiàn)降維。4.4.2示例代碼使用LDA進(jìn)行文本數(shù)據(jù)降維的代碼示例:fromsklearn.decompositionimportLatentDirichletAllocation

#使用LDA降維

lda=LatentDirichletAllocation(n_components=2,random_state=0)

X_lda=lda.fit_transform(X)

#打印降維后的數(shù)據(jù)

print(X_lda)4.4.3解釋此代碼使用LatentDirichletAllocation類將詞頻矩陣降維到兩個主題。n_components參數(shù)指定了主題的數(shù)量。降維后的數(shù)據(jù)表示了每個文檔在兩個主題上的分布,可以用于后續(xù)的分析或機(jī)器學(xué)習(xí)任務(wù)。以上就是關(guān)于數(shù)據(jù)挖掘中特征工程之文本特征提取中特征選擇與降維的詳細(xì)介紹,包括卡方檢驗、互信息、主成分分析和LDA降維的原理與代碼示例。5文本特征在機(jī)器學(xué)習(xí)中的應(yīng)用5.1文本分類文本分類是自然語言處理(NLP)中的一項基本任務(wù),它涉及將文本數(shù)據(jù)分配到預(yù)定義的類別中。在特征工程中,文本特征提取是關(guān)鍵步驟,它將文本轉(zhuǎn)換為機(jī)器學(xué)習(xí)算法可以理解的數(shù)值形式。常見的特征提取方法包括詞袋模型(BagofWords),TF-IDF(詞頻-逆文檔頻率),以及詞嵌入(WordEmbeddings)。5.1.1詞袋模型示例詞袋模型是一種簡單的特征提取方法,它忽略了詞的順序,只考慮詞的出現(xiàn)頻率。fromsklearn.feature_extraction.textimportCountVectorizer

#示例文本數(shù)據(jù)

documents=[

"我喜歡吃蘋果",

"蘋果很好吃",

"我不喜歡吃香蕉",

"香蕉味道不錯"

]

#創(chuàng)建CountVectorizer對象

vectorizer=CountVectorizer()

#將文本數(shù)據(jù)轉(zhuǎn)換為詞頻矩陣

X=vectorizer.fit_transform(documents)

#輸出特征名稱

print(vectorizer.get_feature_names_out())

#輸出詞頻矩陣

print(X.toarray())5.1.2TF-IDF示例TF-IDF是一種更復(fù)雜的特征提取方法,它不僅考慮詞的頻率,還考慮詞在整個文檔集合中的重要性。fromsklearn.feature_extraction.textimportTfidfVectorizer

#使用TfidfVectorizer對象

tfidf_vectorizer=TfidfVectorizer()

#將文本數(shù)據(jù)轉(zhuǎn)換為TF-IDF矩陣

X_tfidf=tfidf_vectorizer.fit_transform(documents)

#輸出特征名稱

print(tfidf_vectorizer.get_feature_names_out())

#輸出TF-IDF矩陣

print(X_tfidf.toarray())5.2情感極性分析情感極性分析旨在確定文本的情感傾向,如正面、負(fù)面或中性。特征提取在此過程中至關(guān)重要,因為它幫助模型理解文本中的情感詞匯。5.2.1TF-IDF與情感詞匯示例fromsklearn.feature_extraction.textimportTfidfVectorizer

fromnltk.corpusimportstopwords

importnltk

nltk.download('stopwords')

#示例文本數(shù)據(jù)

reviews=[

"這家餐廳的食物非常美味,服務(wù)也很好。",

"我非常失望,食物冷冰冰的,服務(wù)態(tài)度惡劣。",

"一般般,沒有特別的感覺。"

]

#創(chuàng)建TfidfVectorizer對象,去除停用詞

tfidf_vectorizer=TfidfVectorizer(stop_words=stopwords.words('chinese'))

#將文本數(shù)據(jù)轉(zhuǎn)換為TF-IDF矩陣

X_tfidf_reviews=tfidf_vectorizer.fit_transform(reviews)

#輸出特征名稱

print(tfidf_vectorizer.get_feature_names_ou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論