這個功能的目的在於將word文檔的內容讀出來後,用jieba分詞庫,找出基於TF/IDF權重最大的關鍵詞。
難點在於一些解碼問題和對word文檔打開過程中一些異常的捕捉,目前爲止還有一些異常捕捉不到,想到一個比較暴力的想法就是,每次打開word時,監聽時間,超過規定時間則把這個word刪除或者別的處理。但是還沒有實現。
下面,上讀取代碼
def new_open_word(file_path):
msword = Dispatch('Word.Application')
msword.Visible = 0
msword.DisplayAlerts = 0
try:
doc = msword.Documents.Open(FileName=file_path )
doc.SaveAs('C:/TEST/3.txt',4);
doc.Close()
except:
return " "
content = open('C:/TEST/3.txt').read()
content = content.replace(" ","").replace("\n","")
try:
content = unicode(content, 'gbk')
except UnicodeDecodeError:
return " "
else:
content = re.findall(ur"[\u4e00-\u9fa5]+",content)
return ''.join(content)