達觀杯文字智慧型挑戰賽任務二(TF IDF)

2021-09-17 02:02:33 字數 1139 閱讀 3900

簡介

tf-idf(term frequency–inverse document frequency)是一種用於資訊檢索與資料探勘的常用加權技術。tf意思是詞頻(term frequency),idf意思是逆文字頻率指數(inverse document frequency)。

原理

tfidf的主要思想是:如果某個詞或短語在一篇文章**現的頻率tf高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。tfidf實際上是:tf * idf。

計算

詞頻(tf) = 某個詞在文章**現的次數 / 文章中的總詞數

逆文字頻率(idf) =  log (語料庫的文件總數 / (包含該詞的文件數+1))

**實現

import pandas as pd

import numpy as np

from sklearn.cross_validation import train_test_split

from sklearn.feature_extraction.text import countvectorizer

print("data read begin...")

train_data = pd.read_csv('./new_data/train_set.csv')

test_data = pd.read_csv('./new_data/test_set.csv')

train_data.drop(columns=['article','id'], inplace = true)

test_data.drop(columns=['article'], inplace = true)

print("data read end...")

"""提取特徵"""

vectorizer = countvectorizer(ngram_range=(1, 2), min_df = 3, max_df = 0.9, max_features = 100000)

vectorizer.fit(train_data['word_seg'])

達觀杯文字智慧型處理挑戰賽

筆者嘗試了一下達觀杯的比賽,如下圖所示 import pandas as pd import imp from sklearn.linear model import logisticregression from sklearn.feature extraction.text import cou...

達觀杯文字智慧型處理挑戰賽練習

比賽官方對資料的說明是資料報含兩個檔案 train set.csv和test set.csv 一.初識資料 train set.csv 此資料集用於訓練模型,每一行對應一篇文章。文章分別在 字 和 詞 的級別上做了脫敏處理。共有四列 第一列是文章的索引 id 第二列是文章正文在 字 級別上的表示,即...

達觀杯 文字智慧型處理挑戰賽 02

原理 將每篇文章看成一袋子詞,並忽略每個詞出現的順序。即將整段文字以詞為單位切分開,然後每篇文章可以表示成乙個長向量,向量中的每一維代表乙個單詞,而該維對應的權重則反映了這個詞在原文章中的重要程度。權重與詞在文字 現的頻率有關,而其中不考慮詞與詞之間的上下文關係。詞袋模型的三步驟 分詞 統計修訂詞特...