Skip to content

Latest commit

 

History

History
1495 lines (1424 loc) · 21 KB

05-04 結巴中文-自動分類.md

File metadata and controls

1495 lines (1424 loc) · 21 KB

05-04 結巴中文-自動分類

執行結果:

GitHub Logo

(1)main.py

#-----------------------
# 載入結巴中文
#-----------------------
import jieba


#-----------------------
# 讀取中文文檔
#
# (如文檔存在子資料夾corpus中)
# DIR="corpus/"  
# posts=[open(os.path.join(DIR, f), 'r', encoding='utf-8-sig').read() for f in os.listdir(DIR)]
#-----------------------
posts=[
  open('doc01.txt', 'r', encoding='utf8').read(),
  open('doc02.txt', 'r', encoding='utf8').read(),
  open('doc03.txt', 'r', encoding='utf8').read(),
  open('doc04.txt', 'r', encoding='utf8').read(),
  open('doc05.txt', 'r', encoding='utf8').read()
]


#-----------------------------
# 以陣列分別儲放所有訓練文章
#-----------------------------
corpus=[]


#-----------------------
# 每篇文章分別斷詞
#-----------------------
cnt=0
poun=(',','。','!',':','「','」','…','、','?','【','】','.',':','?',';','!','~','`','+','-','<','>','/','[',']','{','}',"'",'"', '\n')

for originText in posts:
  #------------------
  # 刪除標點符號
  #------------------	
  filteredText = "".join(c for c in originText if c not in (poun))

  #------------------
  # 讀入停用詞
  #------------------	
  stopWords = {}.fromkeys([ line.rstrip() for line in open('stopWords.txt', encoding='utf8')])

  #------------------
  # 以精確模式分詞
  #------------------	
  words = jieba.cut(filteredText, cut_all=False) 

  #------------------------------
  # 去除停用詞後, 以空白斷詞
  #------------------------------
  final = ''
  for seg in words:
    if seg not in stopWords:
      seg+=' '
      final += seg
	
  #---------------------------	
  # 將斷詞後的字串加入陣列中
  #---------------------------
  corpus.append(final)

  #---------------------------	
  # 印出整理後的訓練文章
  #---------------------------	
  cnt+=1
  print(cnt)
	
  print(final)
  print('*'*60)



#=================================================================
# corpus是一個list, 存放各個已被分詞的文章字串.
# 將corups內的每一個字串轉成相對應的向量
#=================================================================
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(min_df=1, smooth_idf=False, norm='l2', use_idf=True)

#-----------------------
# 將corpus轉成向量
#-----------------------
train_data = vectorizer.fit_transform(corpus)

print(train_data)
print('-'*60)

#-----------------------
# 轉成的向量
#-----------------------
print(train_data.toarray())
print('-'*60)

#-----------------------
# 每個分量代表的單詞
#-----------------------
print(vectorizer.get_feature_names())
print('-'*60)

print('共', len(corpus), '篇文章')
print('-'*60)

print('共', len(vectorizer.get_feature_names()), '個特徵詞')
print('-'*60)


#=================================================================
# 將測試資料與訓練資料比對, 找出最接近的文章, 顯示該文章的類別
#=================================================================
# 3種不同的Naive Bayes
# from sklearn.naive_bayes import GaussianNB
# from sklearn.naive_bayes import BernoulliNB
# from sklearn.naive_bayes import MultinomialNB
#=================================================================
from sklearn.naive_bayes import MultinomialNB
import numpy as np
import sys

#-------------------------
# 載入3種樸素貝氏演算法
#-------------------------
# gnb = GaussianNB()
# mnb = MultinomialNB()
# bnb = BernoulliNB()
#-------------------------
mnb = MultinomialNB()


#-------------------------
#測試分類
#-------------------------
testStr = u'「永不言敗,不斷創造新局」是強者陳焜耀的成功哲學,與之伴隨的,必然是一部為之讚嘆的傳奇。他的人生上半場扛起家族重擔,扭轉了百年企業崩盤的結局從此,羽絨霸主Yao Chen在國際間留名他,就是合隆毛廠總裁陳焜耀。在那段黑暗中追逐光亮的日子,他不得不靠著鎮靜劑與安眠藥艱難前行,他曾以為這種暗自吞下苦痛、手撫滄桑的日子不會有盡頭,' 


#-------------------------
# 刪除標點符號
#-------------------------
testStr = "".join(c for c in testStr if c not in (poun))

#-------------------------
# 以精確模式分詞
#-------------------------
testWords = jieba.cut(testStr, cut_all=False) 

#-------------------------
# 計算測試詞向量
#-------------------------
testVector=np.zeros([1, len(vectorizer.get_feature_names())])
for testSeg in testWords:
  try:		
    if testSeg not in stopWords:
      k=vectorizer.get_feature_names().index(testSeg)
      testVector[0, k]+=1
  except:
    print('找不到:', testSeg.encode(sys.stdin.encoding, "replace").decode(sys.stdin.encoding))


#-------------------------		
# 假設測試文章的分類	
#-------------------------
docClass=[1, 1, 2, 2, 3]
print('*'*60)


#-------------------------
#各文章積分
#-------------------------
cnt=0
best=-99
bestIndex=0
for v in train_data.toarray():
  thisLikely=np.sum(v*testVector)
	
  if thisLikely>best:
    best=thisLikely
    bestIndex=cnt
	
  print('第', cnt, '篇文章積分:', np.sum(v*testVector))
  cnt+=1

print('-'*60)
print('最接近文章', bestIndex, ' , 積分=', best);
	

#-------------------------
#進行預測
#-------------------------
y_pred = mnb.fit(train_data.toarray(), docClass).predict(testVector)

print('-'*50)
print('最接近分類:')
print(y_pred)
print('-'*50)
print('最接近文章:')
print(corpus[bestIndex])
print('-'*50)

(2)doc01.txt

我在每一次的公開演講場合都不斷地鼓勵新世代的年輕人──通往成功的路上,沒有所謂的天分或運氣,只有最初的那份熱情與感動,以及為了它而堅持到底的倔強。
「堅持到底,勿忘初心」是我人生中極為重要的座右銘。本書的書名《恆毅力》也正是我覺得這個世代最需要的特質。書中不斷告訴我們,專注一個方向、竭盡所能、充滿熱情地觀察自己與他人,在所有事物中洞察各種模式和動機,不斷地整合各種可行的方法。似乎已清楚描繪出「成功」的輪廓。我在閱讀這本書的同時,回想起自己生涯中每一段挑戰、挫折、改變、調適──最後超越。恆毅力一直是我跨越每一個階段最大的動力,和成就每一個創作最重要的元素。《恆毅力》是一本改變人生方向,讓我們的內心更強大的成功手冊。
乍看之下,「恆毅力」似乎不是什麼新穎的想法。尤其在華人的學校與家庭中,「吃得苦中苦,方為人上人」已經是被強調的概念。但這本書在我心中最重要的價值之一,在於作者清楚地呈現「吃苦」跟「恆毅力」是不同的。我看過無數在教育體制中成功生存的學生,都是「吃苦」的佼佼者,卻從來不曾被鼓勵去認識自己的興趣或是尋找自己的人生目的。一旦脫離學生身分,很容易成為達克沃斯博士描繪的「脆弱的完美者(fragile perfects)」,瞬間失去前進的動力、也不相信自己有改變的能力,「習得無助」而徬徨不已。
換句話說,「恆毅力」不只是一位老師成功的核心,也如同書中第十章列舉的諸多實例,尤其對於家庭弱勢的孩子,老師是否能創造出「高度期許、持續支持」的環境以有效幫助孩子建立「恆毅力」,是他們是否能透過教育、度過難關、有能力為自己選擇的關鍵。

(3)doc02.txt

設計師靠著「設計思考」(design thinking)解決問題,帶來我們今日的世界。看一看辦公室,看一看家裡,手上那台平板、那支手機、坐著的那張椅子,生活中每一樣東西都源自設計,而每一個設計的起點,都是設計師或設計團隊想解決的問題。
本書作者比爾‧柏內特(Bill Burnett)與戴夫‧埃文斯(Dave Evans)讓我們瞭解,如何透過設計思考,創造出有意義又快樂的人生。不管是誰,身處何方,現在或先前的工作是什麼,目前多老或多年輕,都可以藉著那些帶來世上美妙科技、產品、空間的設計思考,打造專屬於自己的事業與生活,活出圓滿、有趣、創意無限、生產力十足、永遠有驚喜等在前方的人生。
「本書用設計師處理挑戰的方法,帶著讀者打造出具有意義的滿意生活。實驗、找路,製作原型,不斷找出更合適的方法。讀這本書吧,每個人都會讀。」──丹尼爾•品克(Daniel H. Pink),《動機,單純的力量》(Drive)暢銷作者
「未來十年的生涯指引,就靠這本書了……每當你面臨人生重大階段,準備好活出自己熱愛的生活,都可以翻翻這本書。」──大衛‧凱利(David Kelley),IDEO創始人
「來自兩位作者在史丹佛大學人人搶修的同名課程……本書最重要的啟示,或許是世上沒有失不失敗的人生。我們唯一會做錯的事,就是死守著讓自己不快樂的人生。這本書懂我們的迷茫,給予理智的建議,引導我們找出人生是怎麼一回事。人生規畫的經典之作。」──《出版者週刊》(Publishers Weekly)

(4)doc03.txt

勇敢去愛吧!
去愛的勇氣,就是讓自己變得幸福的勇氣!
唯有藉著去愛他人,才能擺脫以自我為中心;
唯有透過去愛他人,才能促成自立;
也因著去愛人,才終於能得到幸福。
無論任何人,從這一瞬間開始就能獲得幸福。
只不過所謂的幸福,並不是停留在原地就能享有的。
睽違三年,辭去大學圖書館工作、成為國中老師的年輕人再度來到哲學家的書房。
這些年,他在教育現場實踐阿德勒理論,卻備受挫折,如今正為是否該放棄而苦惱不已:
「阿德勒的思想是一場大騙局,甚至是會帶來毒害的危險思想!」
「阿德勒的思想在現實社會中根本派不上用場,只不過是紙上談兵!」
「阿德勒的思想根本是不經用的論點、流於空泛的理想論!」
對於年輕人的控訴,哲學家表示:「是你誤解了阿德勒。」
日常生活中究竟該如何實踐阿德勒心理學?要如何才能步上幸福之路?而阿德勒所歸納的結論──為了幸福,人人都必須做出「人生中最重大的抉擇」,究竟又是什麼?
如猛藥般讓人生為之一變的哲學問答,再度揭幕!

(5)doc04.txt

「我們與他人的互動太少,對待他人的態度容易出問題,判斷力也經常出現偏差,一切只因為我們不夠瞭解人性,所以彼此成為敵人。」
科技改變了生活型態,帶來了便利與效率,卻因此使得人與人之間變得疏遠,不如以前緊密。人們缺乏交集,大城市裡充斥著冷漠與不信任,也更難交心。
「陌生」這一詞,我們每個人都很熟悉。因為,就連「家庭」這樣應該親暱的團體裡,都出現「父母誤解子女」或「子女不懂父母」的聲音。
每個人的成長經歷都不相同,自小養成的性格與看待事物的觀點也天差地別,相處起來自然有許多需要磨合的地方。然而,只要我們能夠明白,一個人從出生到現在遭遇過多少困難與挫折,就能夠理解,為什麼這麼多人一輩子都在掙扎,覺得生命很悲傷、社會很可怕。
跟著阿德勒一起爬梳人性,試著去瞭解別人心裡的傷,進而療癒自我生命的創口。

(6)doc05.txt

我們活在一個認為「以家庭優先不應該」的體制,這怎麼可以?
為了兼顧家庭、工作與生活,我們正在進行一場堪稱二十世紀以來為追求人類自由最艱苦的革命。身為美國職業女性的典範,作者點出陪伴家人與挺身而進的失衡現象,以更深刻角度,探討我們應重視什麼、成功該如何衡量、人類天性的源頭,以及平等的真義。
如何讓兼顧事業與家庭,不再是個遙不可及的理想?
身為一名在學術界及事業上均擁有卓越成就的女性,作者點出在進入二十一世紀的現今社會,我們該重視什麼、成功該如何衡量、人類的天性,以及平等的真義為何。並以超越性別的角度,分析工作與家庭無法兼顧並非女性議題,而是社會整體價值觀的失衡。
本書為所有男性及女性開啟了全新方向,以能在兩性平權的原則下,分擔各自的責任,無論你扮演的是照顧者的後勤系統,還是賺錢養家的前鋒角色,都應受到同等的重視。擁有穩定且愉快的家庭關係,才能好好工作進而扶持家庭,這一切全都取決於我們如何創造出讓兩者都能不偏不廢的環境。
兼顧事業與家庭絕對可以成為一種趨勢,從作者在本書中建議的「組合型事業」以及「任務型工作」,到起飛中的新形態商業模式「隨需經濟」(on-demand economy)及職場價值觀「開放工作」(OpenWork)等,均足以改變近一個世紀以來的經濟運轉模式。是時候該展開另一波盛大的改革,不只是女人,對男人也是。

(7)stopWords.txt

,
?
、
。
“
”
《
》
!
,
:
;
?
人民
末##末
啊
阿
哎
哎呀
哎哟
唉
俺
俺们
按
按照
吧
吧哒
把
罢了
被
本
本着
比
比方
比如
鄙人
彼
彼此
边
别
别的
别说
并
并且
不比
不成
不单
不但
不独
不管
不光
不过
不仅
不拘
不论
不怕
不然
不如
不特
不惟
不问
不只
朝
朝着
趁
趁着
乘
冲
除
除此之外
除非
除了
此
此间
此外
从
从而
打
待
但
但是
当
当着
到
得
的
的话
等
等等
地
第
叮咚
对
对于
多
多少
而
而况
而且
而是
而外
而言
而已
尔后
反过来
反过来说
反之
非但
非徒
否则
嘎
嘎登
该
赶
个
各
各个
各位
各种
各自
给
根据
跟
故
故此
固然
关于
管
归
果然
果真
过
哈
哈哈
呵
和
何
何处
何况
何时
嘿
哼
哼唷
呼哧
乎
哗
还是
还有
换句话说
换言之
或
或是
或者
极了
及
及其
及至
即
即便
即或
即令
即若
即使
几
几时
己
既
既然
既是
继而
加之
假如
假若
假使
鉴于
将
较
较之
叫
接着
结果
借
紧接着
进而
尽
尽管
经
经过
就
就是
就是说
据
具体地说
具体说来
开始
开外
靠
咳
可
可见
可是
可以
况且
啦
来
来着
离
例如
哩
连
连同
两者
了
临
另
另外
另一方面
论
嘛
吗
慢说
漫说
冒
么
每
每当
们
莫若
某
某个
某些
拿
哪
哪边
哪儿
哪个
哪里
哪年
哪怕
哪天
哪些
哪样
那
那边
那儿
那个
那会儿
那里
那么
那么些
那么样
那时
那些
那样
乃
乃至
呢
能
你
你们
您
宁
宁可
宁肯
宁愿
哦
呕
啪达
旁人
呸
凭
凭借
其
其次
其二
其他
其它
其一
其余
其中
起
起见
岂但
恰恰相反
前后
前者
且
然而
然后
然则
让
人家
任
任何
任凭
如
如此
如果
如何
如其
如若
如上所述
若
若非
若是
啥
上下
尚且
设若
设使
甚而
甚么
甚至
省得
时候
什么
什么样
使得
是
是的
首先
谁
谁知
顺
顺着
似的
虽
虽然
虽说
虽则
随
随着
所
所以
他
他们
他人
它
它们
她
她们
倘
倘或
倘然
倘若
倘使
腾
替
通过
同
同时
哇
万一
往
望
为
为何
为了
为什么
为着
喂
嗡嗡
我
我们
呜
呜呼
乌乎
无论
无宁
毋宁
嘻
吓
相对而言
像
向
向着
嘘
呀
焉
沿
沿着
要
要不
要不然
要不是
要么
要是
也
也罢
也好
一
一般
一旦
一方面
一来
一切
一样
一则
依
依照
矣
以
以便
以及
以免
以至
以至于
以致
抑或
因
因此
因而
因为
哟
用
由
由此可见
由于
有
有的
有关
有些
又
于
于是
于是乎
与
与此同时
与否
与其
越是
云云
哉
再说
再者
在
在下
咱
咱们
则
怎
怎么
怎么办
怎么样
怎样
咋
照
照着
者
这
这边
这儿
这个
这会儿
这就是说
这里
这么
这么点儿
这么些
这么样
这时
这些
这样
正如
吱
之
之类
之所以
之一
只是
只限
只要
只有
至
至于
诸位
着
着呢
自
自从
自个儿
自各儿
自己
自家
自身
综上所述
总的来看
总的来说
总的说来
总而言之
总之
纵
纵令
纵然
纵使
遵照
作为
兮
呃
呗
咚
咦
喏
啐
喔唷
嗬
嗯
嗳
~
!
.
:
"
'
(
)
*
A
白
社会主义
--
..
>>
 [
 ]

<
>
/
\
|
-
_
+
=
&
^
%
#
@
`
;
$
(
)
——
—
¥
·
...
‘
’
〉
〈
…
 
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
二
三
四
五
六
七
八
九
零
>
<
@
#
$
%
︿
&
*
+
~
|
[
]
{
}
啊哈
啊呀
啊哟
挨次
挨个
挨家挨户
挨门挨户
挨门逐户
挨着
按理
按期
按时
按说
暗地里
暗中
暗自
昂然
八成
白白
半
梆
保管
保险
饱
背地里
背靠背
倍感
倍加
本人
本身
甭
比起
比如说
比照
毕竟
必
必定
必将
必须
便
别人
并非
并肩
并没
并没有
并排
并无
勃然
不
不必
不常
不大
不但...而且
不得
不得不
不得了
不得已
不迭
不定
不对
不妨
不管怎样
不会
不仅...而且
不仅仅
不仅仅是
不经意
不可开交
不可抗拒
不力
不了
不料
不满
不免
不能不
不起
不巧
不然的话
不日
不少
不胜
不时
不是
不同
不能
不要
不外
不外乎
不下
不限
不消
不已
不亦乐乎
不由得
不再
不择手段
不怎么
不曾
不知不觉
不止
不止一次
不至于
才
才能
策略地
差不多
差一点
常
常常
常言道
常言说
常言说得好
长此下去
长话短说
长期以来
长线
敞开儿
彻夜
陈年
趁便
趁机
趁热
趁势
趁早
成年
成年累月
成心
乘机
乘胜
乘势
乘隙
乘虚
诚然
迟早
充分
充其极
充其量
抽冷子
臭
初
出
出来
出去
除此
除此而外
除此以外
除开
除去
除却
除外
处处
川流不息
传
传说
传闻
串行
纯
纯粹
此后
此中
次第
匆匆
从不
从此
从此以后
从古到今
从古至今
从今以后
从宽
从来
从轻
从速
从头
从未
从无到有
从小
从新
从严
从优
从早到晚
从中
从重
凑巧
粗
存心
达旦
打从
打开天窗说亮话
大
大不了
大大
大抵
大都
大多
大凡
大概
大家
大举
大略
大面儿上
大事
大体
大体上
大约
大张旗鼓
大致
呆呆地
带
殆
待到
单
单纯
单单
但愿
弹指之间
当场
当儿
当即
当口儿
当然
当庭
当头
当下
当真
当中
倒不如
倒不如说
倒是
到处
到底
到了儿
到目前为止
到头
到头来
得起
得天独厚
的确
等到
叮当
顶多
定
动不动
动辄
陡然
都
独
独自
断然
顿时
多次
多多
多多少少
多多益善
多亏
多年来
多年前
而后
而论
而又
尔等
二话不说
二话没说
反倒
反倒是
反而
反手
反之亦然
反之则
方
方才
方能
放量
非常
非得
分期
分期分批
分头
奋勇
愤然
风雨无阻
逢
弗
甫
嘎嘎
该当
概
赶快
赶早不赶晚
敢
敢情
敢于
刚
刚才
刚好
刚巧
高低
格外
隔日
隔夜
个人
各式
更
更加
更进一步
更为
公然
共
共总
够瞧的
姑且
古来
故而
故意
固
怪
怪不得
惯常
光
光是
归根到底
归根结底
过于
毫不
毫无
毫无保留地
毫无例外
好在
何必
何尝
何妨
何苦
何乐而不为
何须
何止
很
很多
很少
轰然
后来
呼啦
忽地
忽然
互
互相
哗啦
话说
还
恍然
会
豁然
活
伙同
或多或少
或许
基本
基本上
基于
极
极大
极度
极端
极力
极其
极为
急匆匆
即将
即刻
即是说
几度
几番
几乎
几经
既...又
继之
加上
加以
间或
简而言之
简言之
简直
见
将才
将近
将要
交口
较比
较为
接连不断
接下来
皆可
截然
截至
藉以
借此
借以
届时
仅
仅仅
谨
进来
进去
近
近几年来
近来
近年来
尽管如此
尽可能
尽快
尽量
尽然
尽如人意
尽心竭力
尽心尽力
尽早
精光
经常
竟
竟然
究竟
就此
就地
就算
居然
局外
举凡
据称
据此
据实
据说
据我所知
据悉
具体来说
决不
决非
绝
绝不
绝顶
绝对
绝非
均
喀
看
看来
看起来
看上去
看样子
可好
可能
恐怕
快
快要
来不及
来得及
来讲
来看
拦腰
牢牢
老
老大
老老实实
老是
累次
累年
理当
理该
理应
历
立
立地
立刻
立马
立时
联袂
连连
连日
连日来
连声
连袂
临到
另方面
另行
另一个
路经
屡
屡次
屡次三番
屡屡
缕缕
率尔
率然
略
略加
略微
略为
论说
马上
蛮
满
没
没有
每逢
每每
每时每刻
猛然
猛然间
莫
莫不
莫非
莫如
默默地
默然
呐
那末
奈
难道
难得
难怪
难说
内
年复一年
凝神
偶而
偶尔
怕
砰
碰巧
譬如
偏偏
乒
平素
颇
迫于
扑通
其后
其实
奇
齐
起初
起来
起首
起头
起先
岂
岂非
岂止
迄
恰逢
恰好
恰恰
恰巧
恰如
恰似
千
千万
千万千万
切
切不可
切莫
切切
切勿
窃
亲口
亲身
亲手
亲眼
亲自
顷
顷刻
顷刻间
顷刻之间
请勿
穷年累月
取道
去
权时
全都
全力
全年
全然
全身心
然
人人
仍
仍旧
仍然
日复一日
日见
日渐
日益
日臻
如常
如此等等
如次
如今
如期
如前所述
如上
如下
汝
三番两次
三番五次
三天两头
瑟瑟
沙沙
上
上来
上去