自然語言處理3---TFIDF
# -*- coding:utf-8 -*-
'''
將tfidf寫入txt檔案
'''
import string
import sys
import codecs
reload(sys)
import os
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer, TfidfTransformer
if __name__ == '__main__':
# =====================1、構造樣本的目錄檔名稱======================
# 根目錄檔案
root_file = '.\Reduced_internet_preprocess'
# 目錄列表
text_dir_list = []
# 遍歷根目錄檔案
for root, dir, files in os.walk(root_file):
# 構造檔案目錄
for f in files:
text_init_dir = root + '\\' + f
text_dir_list.append(text_init_dir)
# =================== 2、從檔案匯入停用詞表=======================
stpwrdpath = "E:\ly\stop_words.txt" # 停用詞檔案路徑
stpwrd_dic = open(stpwrdpath, 'rb')
stpwrd_content = stpwrd_dic.read() # 將停用詞表轉換為list
stpwrdlst = stpwrd_content.splitlines()
stpwrd_dic.close()
# ====================3、遍歷讀取樣本檔案內容,製作語料庫=========================
# 儲存文件的語料庫
corpus = []
# 把內容寫入語料庫
for f in text_dir_list:
# 開啟文字檔案
file_source = open(f, 'r+')
content = file_source.read()
file_source.close()
corpus.append(content)
# =====================4、對文件做詞向量化,計算每個詞語的tfidf值======================
vectorizer = CountVectorizer(stop_words=stpwrdlst)
transformer = TfidfTransformer()
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))
#vector = TfidfVectorizer(stop_words=stpwrdlst) # 生成向量物件,input引數是檔案
#tfidf = vector.fit_transform(corpus)
word = vectorizer.get_feature_names() # 所有文字的關鍵字
weight = tfidf.toarray() # 對應的tfidf矩陣
print u'詞向量數:', len(word)
print u'詞向量數:', len(weight[0])
print u'詞向量'
print word
print u'樣本數:', len(weight)
print u'權重矩陣'
print weight
# =======================5、把每個文件中詞語的tfidf值寫入檔案中儲存=====================
# 建立每個樣本的tfidf值結果目錄
sFilePath = '.\Tfidf_file'
if not os.path.exists(sFilePath):
os.mkdir(sFilePath)
# 這裡將每份文件詞語的TF-IDF寫入tfidffile資料夾中儲存
for i in range(len(weight)):
print u"--------Writing all the tf-idf in the", i, u" file into ", sFilePath + '\\' + string.zfill(i,
5) + '.dat', "--------"
f = codecs.open(sFilePath + '\\' + string.zfill(i, 5) + '.dat', 'w', 'utf-8')
# 寫入詞向量行
for j in range(len(word)):
f.write(word[j] + " ")
f.write('\n')
# 寫入tfidf
for j in range(len(word)):
f.write(str(weight[i][j]) + ' ')
f.close()
print '\n'
# =======================6、合成一個文件====================================
# 建立總結果目錄
resultFilePath = '.\Result'
if not os.path.exists(resultFilePath):
os.mkdir(resultFilePath)
# 把每個樣本文件的tfidf值寫入一個文件中
f = codecs.open(resultFilePath + '\\' + 'alldata' + '.dat', 'w', 'utf-8')
#for j in range(len(word)):
#f.write(word[j] + " ")
#f.write('\n')
for i in range(len(weight)):
print u"--------Writing all the tf-idf in the", i, u" file into ", resultFilePath + '\\' + 'weight_alldata' + '.dat', "--------"
for j in range(len(word)):
f.write(str(weight[i][j]) + ' ')
f.write('\n')
f.close()
相關推薦
自然語言處理3---TFIDF
# -*- coding:utf-8 -*- ''' 將tfidf寫入txt檔案 ''' import string import sys import codecs reload(sys) import os from sklearn.feature_ex
深度學習與自然語言處理(3)_斯坦福cs224d Lecture 3
原文作者:Rohit Mundra, Richard Socher 原文翻譯:@熊傑([email protected]) && @王昱森([email protected]) && @範築軍老師( [
自然語言處理3 -- 詞性標註
系列文章,請多關注 Tensorflow原始碼解析1 – 核心架構和原始碼結構 帶你深入AI(1) - 深度學習模型訓練痛點及解決方法 自然語言處理1 – 分詞 自然語言處理2 – jieba分詞用法及原理 自然語言處理3 – 詞性標註 自然語言處理4 – 句法分析 自然語言處理5 –
python自然語言處理——3.1 從網絡和硬盤訪問文本
自然語言處理 num align otto aci soup tro nltk find 微信公眾號:數據運營人本系列為博主的讀書學習筆記,如需轉載請註明出處。 第三章 加工原料文本 3.1 從網絡和硬盤訪問文本電子書處理的HTML處理RSS訂閱讀取本地文件 3.
自然語言處理 - 如何通俗地理解TFIDF?
log 忘記 right 們的 提取 取出 tf-idf isp 總數 本博客屬個人學習筆記,如有疏漏,歡迎在評論留言指出~轉載請註明。 在自然語言處理中,TFIDF常常被人提及。很多材料都提及TFIDF中的“普遍重要性”,但很
python自然語言處理-讀書筆記3
# -*- coding:utf-8 -*- # __author__ = 'lipzhang' import nltk from nltk.corpus import gutenberg #古騰堡語料庫 from nltk.corpus import webtext #w網路聊天文字 from
自然語言處理(3)——Word2Vec理論
word2vec是一個將單詞轉換成向量形式的工具。可以把對文字內容的處理簡化為向量空間中的向量運算,計算出向量空間上的相似度,來表示文字語義上的相似度。 一、理論概述 (主要來源於http://licstar.net/archives/328這篇部落格) 1.詞向量是什麼 自然語言理
第八章8.3自然語言處理-庫的基本運用
#!/usr/bin/env python # _*_ coding:utf-8 _*_ #下載nltk的data # import nltk # nltk.download() #建立text物件
Python自然語言處理實戰(3):中文分詞技術
3.1、中文分詞簡介 在英文中,單詞本身就是“詞”的表達,一篇英文文章就是“單詞”加分隔符(空格)來表示的,而在漢語中,詞以字為基本單位的,但是一篇文章的語義表達卻仍然是以詞來劃分的。 自中文自動分詞被提出以來,歷經將近30年的探索,提出了很多方法,可
第六章(1.3)自然語言處理實戰——使用tf-idf演算法實現簡單的文字聚類
一、原理 使用jieba切詞 用td-idf計算文字的詞頻和逆文件詞頻 排序選出最重要的2個或3個詞作為這段文字的id 具有相同id的文字被歸為一類 二、使用python實現簡單的文字聚類,其中使用了tf-idf演算法,jieba分詞,把相似的文字聚合在
自然語言處理期末複習(3)-(5)模型與句法分析
第三部分 隱馬爾科夫模型與詞類標註1.定義:如果給定一個觀察序列(不同顏色的小球序列),不能直接確定狀態轉換序列(罈子的序列),因為狀態轉移過程被隱藏起來了。所以這類隨機過程被稱為隱馬爾科夫過程。2.詞類標註的方法:(1)基於規則的詞類標註:查字典,給詞標記所有可能,逐步刪除
自然語言處理學習3:中文分句re.split(),jieba分詞和詞頻統計FreqDist
1. 使用re.split() 分句,re.split(delimiter, text) import jieba import re # 輸入一個段落,分成句子,可使用split函式來實現 paragraph = "生活對我們任何人來說都不容易!我們必須努力,最重要的是
HanLP《自然語言處理入門》筆記--3.二元語法與中文分詞
筆記轉載於GitHub專案:https://github.com/NLP-LOVE/Introduction-NLP 3. 二元語法與中文分詞 上一章中我們實現了塊兒不準的詞典分詞,詞典分詞無法消歧。給定兩種分詞結果“商品 和服 務”以及“商品 和 服務”,詞典分詞不知道哪種更加合理。 我們人類確知道第二種更
自然語言處理中的Attention Model:是什麽及為什麽
機器 逆序 mar 回來 是什麽 all 意義 及其 creation /* 版權聲明:可以任意轉載,轉載時請標明文章原始出處和作者信息 .*/ author: 張俊
gensim自然語言處理
encode content for 服務 讀取 htm all mat 自然語言 最近在做詞語的相似度做比較,就選用了gensim 首先要安裝gensim庫,此處省略,參看官網http://radimrehurek.com/gensim/install.html 在網上下
NLP系列(1)_從破譯外星人文字淺談自然語言處理的基礎
應用 展現 發現 func 文本 詞幹 pos 中文分詞 漢語 作者:龍心塵 &&寒小陽 時間:2016年1月。 出處: http://blog.csdn.net/longxinchen_ml/article/details/505
文本情感分析的基礎在於自然語言處理、情感詞典、機器學習方法等內容。以下是我總結的一些資源。
建議 中心 這場 分詞 自然語言處理 目前 能力開放 計算 推薦算法 文本情感分析的基礎在於自然語言處理、情感詞典、機器學習方法等內容。以下是我總結的一些資源。 詞典資源:SentiWordNet《知網》中文版中文情感極性詞典 NTUSD情感詞匯本體下載 自然語言處理
自然語言處理哪家強?
的語音 科學 點對點 亞馬遜 消息 合作 夢幻 項目 找到 自然語言處理哪家強? 摘要:語音交互事關未來,這點從大公司收購、投資、合作不斷,就可見一斑。如蘋果收購Siri、Novauris、Google收購多項語音識別技術專利、Facebook收購Wit.ai等、Ama
2017MySQL中文索引解決辦法 自然語言處理(N-gram parser)
ray spa 全文索引 rom alt lte int 中文索引 ble 問題:長期以來MYSQL搜索對於中文來說不太理想,InnoDB引擎對FULLTEXT索引的支持是MySQL5.6新引入的特性,但是用“初級”一詞在“我是一名初
(zhuan) 自然語言處理中的Attention Model:是什麽及為什麽
機器 pri 概念 max page acf 集中 use tps 自然語言處理中的Attention Model:是什麽及為什麽 2017-07-13 張俊林 待字閨中 要是關註深度學習在自然語言處理方面的研究進展,我相信你一定聽說過Attention Model(