3h: 中文 前處理4:斷句 前處理8:標點清洗 前處理12:停用詞清洗
# encoding: UTF-8
import re
fileBefPro=open('E:\\dataMining\\data.txt')
fileAftPro=open('E:\\dataMining\\after.txt','a')
iter_f=iter(fileBefPro)
for line in iter_f:#讀一行就操作一行
#在這裡進行處理哈
fileAftPro.write(str(line))
fileAftPro.close()
fileBefPro.close()
-------------------------------------------------------------------------------------------1.斷句
使用的是re中的split
split中使用中文分隔符:https://segmentfault.com/q/1010000002461248
-------------------------------------------------------------------------------------------# encoding: UTF-8 import re str=u"【紅豆杉】紅豆杉作用與功效_紅豆杉抗癌藥品-健客網" re.split(u'【|】|-|_', str) for i in re.split(u'【|】|-|_', str): print i
2,清洗中文標點符號程式碼:http://blog.csdn.net/mach_learn/article/details/41744487
# encoding: UTF-8
import re
temp = "想要把一大段中文文字中所有的標點符號刪除掉,然後分詞製作語料庫使用,大神們有沒有辦法呢?或者哪位大神有中文語料庫給個連結好不好?我想做新聞的文字相似度分析,提取關鍵詞的時候需要語料庫。謝謝大神們~~~~~ "
temp = temp.decode("utf8")
string = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、 [email protected]#¥%……&*()]+".decode("utf8"), "".decode("utf8"),temp)
print string
或使用這個網址提供的3個辦法:http://www.itstrike.cn/Question/5860b8a2-6c44-44f4-8726-c5a7603d44cc.html--------------------------------------------------------------------------------------------
3.停用詞清洗:http://blog.sina.com.cn/s/blog_bccfcaf90101ell5.html
http://blog.csdn.net/sanqima/article/details/50965439 在Python裡安裝Jieba中文分片語件
----------------------------------------------------------------------------------------------# encoding: UTF-8 import re import jieba #stopword=[line.strip().decode('utf-8') for line in open('E:\\dataMining\\chinese_stopword.txt').readlines()] stopwords = {}.fromkeys([ line.rstrip() for line in open('E:\\dataMining\\chinese_stopword.txt') ]) segs = jieba.cut('聽說你超級喜歡萬眾掘金小遊戲啊啊啊,或者萬一你不喜歡我咧', cut_all=False) final='' for seg in segs: seg=seg.encode('utf-8') if seg not in stopwords: final+=seg print final
上面我們處理的是單個檔案哦
現在的問題:要是我們處理多個檔案咧?
綜上程式碼如下:
# encoding: UTF-8
import sys
import re
import codecs
import os
import shutil
import jieba
import jieba.analyse
#匯入自定義詞典
#jieba
#Read file and cut
def read_file_cut():
stopwords = {}.fromkeys([ line.strip() for line in open('E:\\dataMining\\chinese_stopword.txt') ])
#create path
#要處理檔案的路徑
path = "E:\\dataMining\\data\\"
#處理完成後寫入檔案的路徑
respath="E:\\dataMining\\result\\"
#isdir(s)是否是一個目錄
if os.path.isdir(respath): #如果respath這個路徑存在
shutil.rmtree(respath, True) #則遞迴移除這個路徑,os.removedirs(respath) 不能刪除非空目錄
os.makedirs(respath) #重新建立一個respath的多級目錄
#讀出原始檔案的個數
total="%d" % len(os.listdir("E:\\dataMining\\data"))
#一共有total個txt檔案
print total
num = 1
total=int(total)
while num<=total:
name = "%d" % num
fileName = path + str(name) + ".txt"
resName = respath + str(name) + ".txt"
source = open(fileName, 'r') #r表示只讀檔案
#if os.path.exists(resName):
# os.remove(resName) #remove(path)表示刪除檔案 --removedirs(path)表示刪除多級目錄
#使用codecs模組提供的方法建立指定編碼格式檔案
#open(fname,mode,encoding,errors,buffering)
result = codecs.open(resName, 'w', 'utf-8')
line = source.readline() #讀取一行
line = line.rstrip('\n') #除首尾空格
while line!="":
#line = unicode(line, "utf-8") #將unicode轉換成utf-8,才能寫入到檔案中
output=''
strr=''
#斷句 還可以接著新增.......
for i in re.split(u'【|】|-|_',line):
strr=strr+i+'\t'
#清洗中文標點符號 還可以接著新增.......
string = re.sub("[\.\!\/_,$%^*(+\"\']+|[+——!,。?、[email protected]#¥%……&*()]+".decode("utf-8"),"",strr)
#停用詞清洗
segs = jieba.cut(string,cut_all=False)
for seg in segs:
seg=seg.encode('utf-8')
segs=[seg for seg in segs if seg not in stopwords]
output = ' '.join(segs)#空格拼接
print output
result.write(output + '\r\n')
line = source.readline()
else:
print 'End file: ' + str(num)
source.close()
result.close()
num = num + 1
else:
print 'End All'
#Run function
if __name__ == '__main__':
read_file_cut()
相關推薦
3h: 中文 前處理4:斷句 前處理8:標點清洗 前處理12:停用詞清洗
0.讀取檔案的處理辦法# encoding: UTF-8 import re fileBefPro=open('E:\\dataMining\\data.txt') fileAftPro=open('E:\\dataMining\\after.txt','a') it
python使用jieba實現中文文檔分詞和去停用詞
分享圖片 lac lena idt center cut inpu span code 分詞工具的選擇: 現在對於中文分詞,分詞工具有很多種,比如說:jieba分詞、thulac、SnowNLP等。在這篇文檔中,筆者使用的jieba分詞,並且基於python3環境,選擇
利用java實現對文字的去除停用詞以及分詞處理
功能: 對txt文件進行分詞處理,並去除停用詞。 工具: IDEA,java,hankcs.hanlp.seg.common.Term等庫。 程式: import java.util.*; import java.io.*; import java.lang.String; imp
Python自然語言處理—停用詞詞典
一 過濾文字 去除停用詞典和錯詞檢錯都可以用詞典的形式完成,以停用詞為例,我使用的應該是知網提供的中文停用詞典。測試的資料集是小學生數學題。 print(text) # 列印未去除停用詞前版本 with open(r"C:\Users\BF\Desktop\NLTK\stopwords.
php 去除常見中文停用詞(過濾敏感詞)
在用sphinx通過文章標題匹配相關文章時,去除停用詞後調出的文章相關性更好。 <?php header("Content-type:text/html;charset=utf-8"); $str = file_get_contents('stop.txt');//將常見中文停用詞表內容讀入
【Python】中文分詞並過濾停用詞
中文分詞並過濾停用詞,python程式碼如下。 #coding=utf-8 import jieba input_path='../data/train_pos_100.txt' output_path='../data/train_pos_100_seg.txt' st
【java HanNLP】HanNLP 利用java實現對文字的去除停用詞以及分詞處理
HanNLP 功能很強大,利用它去停用詞,加入使用者自定義詞庫,中文分詞等,計算分詞後去重的個數、 maven pom.xml 匯入 <dependency> <groupId>com.hankcs</g
第二章:基於IK的智慧分詞、細粒度分詞、同義詞、停用詞
2. 將檔案放入solr.war的WEB-INF/lib下 3. 將IKAnalyzer.cfg.xml、ext.dic、stopword.dic放到WEB-INF/classes目錄下,注意:classes目錄沒有,需要手動建立 4. 配置同義詞與停用詞 <
使用IKAnalyzer實現中文分詞&去除中文停用詞
1、簡介:IKAnalyzer是一個開源的,基於java語言開發的輕量級的中文分詞工具包。這裡使用的是IKAnalyzer2012。 2、IK Analyzer 2012特性: (1)採用了特有的“正向迭代最細粒度切分演算法“,支援細粒度和智慧分詞兩種切分模式; (2)在
Python進行文字預處理(文字分詞,過濾停用詞,詞頻統計,特徵選擇,文字表示)
系統:win7 32位 分詞軟體:PyNLPIR 整合開發環境(IDE):Pycharm 功能:實現多級文字預處理全過程,包括文字分詞,過濾停用詞,詞頻統計,特徵選擇,文字表示,並將結果匯出為WEKA能夠處理的.arff格式。 直接上程式碼: #!/usr/bin/
中文分詞與停用詞的作用
首先什麼是中文分詞stop word? 英文是以詞為單位的,詞和詞之間是靠空格隔開,而中文是以字為單位,句子中所有的字連起來才能描述一個意思。例如,英文句子I am a student,用中文則為:“我是一個學生”。計算機可以很簡單通過空格知道studen
多版本中文停用詞詞表 + 多版本英文停用詞詞表 + python詞表合併程式
文章簡介與更新記錄 如果你只想獲取中文停用詞此表,請直接到文章結尾下載專案檔案,其中包括三個中文停用詞詞表,一個英文停用詞詞表和一個合併詞表的.py檔案 2017/07/04 建立文章,上傳檔案 2017/07/04 更新了合併程式碼,添加了新的中文停用詞
如何在java中去除中文文字的停用詞
1. 整體思路 第一步:先將中文文字進行分詞,這裡使用的HanLP-漢語言處理包進行中文文字分詞。 第二步:使用停
《思考快與慢》前傳,兩位天才猶太心理學家的傳奇人生與學術故事:4星|《思維的發現》
圖片 基本上 哲學 utf8 發出 思考 成功 整體 思想 思維的發現:關於決策與判斷的科學 全書主題是《思考快與慢》作者丹尼爾·卡尼曼和他的親密搭檔阿莫斯的傳奇人生與學術故事。 兩位都是心理學界的天才,都是以色列人。丹尼爾童年在巴黎生活,經歷過德軍占
《資料演算法:Hadoop_Spark大資料處理技巧》艾提拉筆記.docx 第1章二次排序:簡介 19 第2章二次排序:詳細示例 42 第3章 Top 10 列表 54 第4章左外連線 96 第5
《資料演算法:Hadoop_Spark大資料處理技巧》艾提拉筆記.docx 第1章二次排序:簡介 19 第2章二次排序:詳細示例 42 第3章 Top 10 列表 54 第4章左外連線 96 第5章反轉排序 127 第6章
ASP.NET Core應用的錯誤處理[4]:StatusCodePagesMiddleware中介軟體如何針對響應碼呈現錯誤頁面
StatusCodePagesMiddleware中介軟體與ExceptionHandlerMiddleware中介軟體比較類似,它們都是在後續請求處理過程中“出錯”的情況下利用一個錯誤處理器來完成最終的請求處理與響應的任務。它們之間的差異在於對“錯誤”的界定上,對於ExceptionHandlerMiddl
精通Python自然語言處理 4 :詞性標註--單詞識別
詞性標註被用於資訊檢索、機器翻譯、NER、語言分析等1、詞性標註簡介 一個對句中的每個識別符號分配詞類(如名詞、動詞、形容詞等)標記的過程。在nltk.tag包中並被TaggerIbase類所繼承。>>> text1 = nltk.word_tok
python練習六十二:文件處理,往文件中所有添加指定的前綴
文件處理 pytho += txt mat write 執行 nbsp 格式 往文件中所有添加指定的前綴方法一:open方法f_r = open(‘text.txt‘) f_w = open(‘text_new.txt‘,‘w+‘) i = 0 while True:
dpkg: 處理軟體包linux-image-4.8.0-36-generic (--remove)時出錯:子程序已安裝post-removal指令碼返回錯誤狀態 1
sudo apt-get install geany 時報錯:“dpkg: 處理軟體包 linux-image-extra-4.8.0-36-generic (--remove)時出錯: 子程序 已安裝 post-removal 指令碼 返回錯誤狀態 1正在解除安裝 linu
4.非關系型數據庫(Nosql)之mongodb:普通索引,唯一索引
log 索引 xpl sys watermark lang mon style gravity 一:普通索引 1創建一個新的數據庫 > use toto; switched to db toto