用統計學語言表達,就是在詞頻的基礎上,對每個詞分配乙個權重:
最常用的詞(如「的」、「是」、「在」等)給予最小的權重;
最常見的詞(如「中文分詞」)給予較小的權重;
較少見的詞(如「馬爾科夫模型」)給予較大的權重。
tf計算公式
tf=該次在文件中出現的次數
idf=log(文件總數/包含改詞的文件數+1)
library(tm)
library(tmcn)
library(rwordseg)
docs <- corpus(
dirsource(
c("sogouc.mini/sample/c000007", "sogouc.mini/sample/c000008",
"sogouc.mini/sample/c000010", "sogouc.mini/sample/c000013",
"sogouc.mini/sample/c000014", "sogouc.mini/sample/c000016",
"sogouc.mini/sample/c000020", "sogouc.mini/sample/c000022",
"sogouc.mini/sample/c000023", "sogouc.mini/sample/c000024")),
readercontrol = list(
language='utf-8'
))#移除空白
docs <- tm_map(docs, stripwhitespace)
#移除標點
docs <- tm_map(docs, removepunctuation)
docs <- tm_map(docs, content_transformer(segmentcn), returntype="tm")
docs <- tm_map(docs, content_transformer(function
(x)iconv
(x, from="utf8", to="gb2312", sub="byte")))
tdm<- termdocumentmatrix
( docs,
control = list(
wordlengths= c(1, 4),
stopwords = stopwordscn()
))tf<- as.matrix
(tdm)
idf(tf, 1, function(row) );
tf.idf = tf*idf
(col) )
#獲取每篇文章關鍵字所在的位置,
#這樣子就可以獲取對應的tf、idf以及tf.idf的值了
(col) )
tf[keywordindexes[, 1], 1]
idf[keywordindexes[, 1]]
tf.idf[keywordindexes[, 1], 1]
文字關鍵詞提取 Python
import numpy as np import pandas as pd import jieba import jieba.analyse 讀取txt文字檔案 def read from file directions decode set utf 8 gb18030 iso 8859 2 g...
文字挖掘學習(三) 關鍵詞提取 TF IDF
基本思想 詞頻tf term frequency,衡量乙個term在文件 現的有多頻繁 考慮到文章長度的差異,需要對詞頻做標準化 逆文件頻率idf inverse document frequency,用於模擬在該語料的實際使用環境中,某乙個term有多重要 idf的具體演算法 tf idf tf ...
關鍵詞提取
隱含主題模型優缺點 隱含主題模型可以很好地表示文件和標籤主題,有效降低標籤系統中噪音的影響。但是另外乙個方面,隱含主題相對於詞而言粒度較粗,對於具體實體 如人名 地名 機構名和產品名 的標籤沒有辦法做到很好地區分,因此對這些細粒度標籤推薦效果較差 典型的聚類演算法 層次聚類 hierarchical...