線上中文斷詞工具:Jieba-JS / Online Chinese Analyzer

文章推薦指數: 80 %
投票人數:10人

html 最後會在瀏覽器的console呈現斷詞結果: 斷詞的結果是: ["這個","布丁","是","在","無聊","的","世界","中","找尋","樂趣","的","一種","不能","吃","的","食物",",","喜愛","動漫畫","、","遊戲","、","程式",",","以及","跟","世間","脫節","的","生活","步調","。

"] 自訂詞庫設定/CutomDictionary Jieba允許大家自訂詞庫,我也在Jieba-JS中擴充了這個功能。

dict_custom.js是自訂詞庫的範例檔案,內容如下: _custom_dict=[ ["漫畫",99999999,"n"],];//引用設定檔案,以下不用變更if(typeof(define)==="function"){   define(function(require){       return_custom_dict;   });}else{   module.exports=_custom_dict;} 詞庫是由多個詞彙組成,每個詞彙設定有三個欄位: 詞:例如「漫畫」 斷詞權重:要設很大才能蓋過原本的斷詞權重,如「99999999」。

詞性標記:例如名詞「n」。

Jieba的詞性列表請看「词的分类」這篇的內容。

在Jieba-JS中要使用自訂詞庫的話,用法如下: call_jieba_cut(_text,_custom_dict,_callback); 示範用法如下: var_text="這個布丁是在無聊的世界中找尋樂趣的一種不能吃的食物,喜愛動漫畫、遊戲、程式,以及跟世間脫節的生活步調。

";var_custom_dict="https://github.com/pulipulichen/jieba-js/blob/master/scripts/data/dict_custom.js";call_jieba_cut(_text,_custom_dict,function(_result){ console.log(_result);}); 載入自訂詞庫之後,斷詞結果會有些變化: 原本「動漫畫」被視為一個詞,現在被斷開成為「動」跟「漫畫」了。

Node.js版本/UseJieba-JSinNode.js 我們也可以在Node.js上執行Jieba-JS。

做法請參考node.js這個檔案,內容如下,運作結果如上圖: require('../scripts/main.js');_text="這個布丁是在無聊的世界中找尋樂趣的一種不能吃的食物,喜愛動漫畫、遊戲、程式,以及跟世間脫節的生活步調。

";dict1=require('../scripts/data/dictionary.js');dict2=require('../scripts/data/dict_custom.js');node_jieba_parsing([dict1,dict2],_text,function(_result){   console.log(_result.join(""));}); 線上展示/OnlineDemo 你可以直接使用上面的網頁直接斷詞,不用再安裝其他工具了。

結語/Inclosing 我開始研究Jieba-JS的理由很簡單,因為我只是想找一個免安裝的斷詞工具而已。

雖然CKIP有提供線上展示服務,但是那並不是一個JavaScript工具,不好客製化。

而且CKIP的詞庫是以Big5為主,一些特殊的文字是沒辦法辨識的。

另一方面,現在中文斷詞最主流的Jieba雖然也很多程式語言,也大多提供線上展示的連結,像是原始Python版的http://jiebademo.ap01.aws.af.cm/或PHP版的http://jieba-php.fukuball.com/,但是也因為是伺服器端的語言,使用上並沒有這麼便利。

找著找著,沒想到Jieba真的有不用安裝的JavaScript版本,我就這樣子做了一個真正免安裝的「線上展示斷詞工具」了。

這個工具並不是在伺服器端運作,而是完全在使用者端的瀏覽器運作。

雖然運作速度比較慢一點,但是這樣我就幾乎不需要擔心伺服器當機的問題,非常好用。

除了解決了線上展示的問題之外,Jieba-JS也解決了另一個問題:Node.js難以安裝結巴斷詞器的問題。

Node.js在Windows中要使用Jieba的話,必須要先安裝Python,然後在作業系統上編譯Jieba所需要的檔案,最後才能使用Jieba斷詞。

但是這個安裝過程非常地困難,時常遭遇問題,可以看NodeJiebaReadme.me中的「NodeJieba在Windows上面的一系列安装问题和斗争成功过程参考」。

不過現在有Jieba-JS這樣的JavaScript函式庫之後,就不需要再去煩惱NodeJieba編譯的問題,可以在Node.js中直接使用Jieba-JS來斷詞。

希望這個程式幫得上大家的忙,一起來做中文文本分析吧。

布丁布丁吃布丁 線上中文斷詞工具:Jieba-JS/OnlineChineseAnalyzer:Jieba-JS 是由 布丁布丁吃布丁 製作,以創用CC姓名標示-非商業性-相同方式分享3.0台灣授權條款釋出。

這個布丁是在無聊的世界中找尋樂趣的一種不能吃的食物,喜愛動漫畫、遊戲、程式,以及跟世間脫節的生活步調。

L P 關於布丁 訂閱BLOG 贊助 RelatedPosts 總共33則留言 ( 我要發問 , 隱藏留言 顯示留言 ) 匿名2017年3月30日下午1:12範例用ie開好像不行耶會一直停在處理中回覆刪除回覆布丁布丁吃布丁2017年3月30日晚上7:03真可惜可能IE不能用吧刪除回覆回覆回覆匿名2017年6月17日凌晨12:48您好,想請問大大一個問題,要如何實現詞性標註例如這樣(github上的文件說明)的結果varnodejieba=require("nodejieba");console.log(nodejieba.tag("红掌拨清波"));//[{word:'红掌',tag:'n'},//{word:'拨',tag:'v'},//{word:'清波',tag:'n'}]辛苦大大的整理了回覆刪除回覆布丁布丁吃布丁2017年6月19日下午5:15你好,呃,我不是用nodejieba,用的是jieba-js,所以你那個github上的文件說明是不一樣的https://github.com/pulipulichen/jieba-js/blob/master/scripts/main.js請自行研究程式碼,關鍵可能是這一個?我也不太清楚刪除回覆回覆回覆布丁布丁吃布丁2018年5月4日下午2:39因為最近有斷詞的需求,所以我改進了線上斷詞器的使用介面:https://lh3.googleusercontent.com/-E-sJdliqHr4/Wuv_F78OXuI/AAAAAAADuKg/8mu_9S6E6HEh6qZYzz2EEd5ecPgBwl1mgCHMYCw/s0/2018-05-04_14-34-53.png改良功能如下:-加入使用者詞典、停用字功能-使用者詞典與停用字皆有範例檔。

停用字的範例來自於stopwords-iso*Chinesestopwordshttps://github.com/stopwords-iso/stopwords-zh*Englishstopwordshttps://github.com/stopwords-iso/stopwords-en-各個欄位加入檔案上傳、下載、複製到剪貼簿的功能我本來希望加入詞性標註跟斷詞模式中的搜尋引擎模式,這兩種功能對於文本分類、擷取特徵來說非常重要。

可惜jieba-js專案並沒有實作這些功能,我也不太可能從頭去做這樣的工具出來,可能還是要用伺服器端的Python或Node.js來實作吧。

線上斷詞器應該就只能先做到這裡了。

回覆刪除回覆回覆Unknown2018年7月12日下午1:04您好是否在IE尚無法正常使用?我在Chrome上可以正常顯示,但是也會出現UncaughtError:Nodefinecallformainhttp://requirejs.org/docs/errors.html#nodefineatA(require.js:8)atObject.completeLoad(require.js:28)atHTMLScriptElement.onScriptLoad(require.js:29)這個錯誤回覆刪除回覆布丁布丁吃布丁2018年7月12日下午4:15ToUnknow:1.IE無法執行,請使用Chrome。

2.require.js有錯誤訊息,但可以忽視,程式仍然可以正常執行。

刪除回覆回覆Unknown2018年7月12日下午4:37To布丁大大謝謝您給的建議,不過我可能需要IE可以運作,我在想辦法看看謝謝刪除回覆回覆布丁布丁吃布丁2018年7月12日晚上11:04ToRexHsu,好的,祝你順利刪除回覆回覆回覆藤井暁2018年11月23日晚上7:12大大您好你的範例輸出結果會把前面“這個”砍掉耶?那是正常的嗎?我是有在下面Stopword看到“這個”有存進去啦抱歉我可能不太懂他的運行原理@@回覆刪除回覆布丁布丁吃布丁2018年11月23日晚上8:29ToDannyHwang,Stopwords表示會被過濾掉的停用字所以「這個」在Stopwords中,表示他不會出現在斷詞結果裡。

反過來說,如果你把Stopwords中拿掉「這個」他就會出現在斷詞結果中了刪除回覆回覆回覆遊戲狼2019年1月16日中午12:56To布丁大大你好最近因為要資料分析的關係再用您的這個系統,但我發現網頁上上傳自訂字典,但重新斷字結果不是我要的@@?請問這個部分我哪裡要修正嗎?我是下載上面的text檔新增如下找尋樂趣,9999999,n無聊的世界,9999999,n然後再按開始斷詞,但結果不是我要的我目前因為分析是要給專門領域使用,所以希望可以動態修改字典,省去複雜的操作(畢竟要給非資訊專業的老師們用)想請問這部分我可以怎麼解決呢?另外我是HTME和js新手,所以有可能是我程式上面有錯,還謝謝布丁大大把問題看到這邊~回覆刪除回覆布丁布丁吃布丁2019年1月17日晚上11:45To遊戲狼,這是因為我程式只有在讀取網頁初始化的時候才讀取自訂詞典。

後來改進了,只要有變更自訂詞典,程式就會重新初始化,這樣子就能夠正確使用自訂詞典了。

刪除回覆回覆回覆遊戲狼2019年2月11日下午1:06謝謝您的協助!!!目前直接下載您的檔案可以達到我要的效果,真的非常感謝!!但因為我喜歡了解程式用法,以利後面在使用時比較能自己修改,所以想問:1.請問是要用$(function()...這個方式先執行過程式,才能成功運行嗎?我有試過這樣https://jsbin.com/yofalen/edit.但結果不會是我的字典,希望大大能講解這之中的原因2.如果不需要馬上讀取使用的話,我想問我這個問題要怎麼改才好呢?我希望網頁一開始不要執行,因為我不知道後續動態自訂字典會有多大,怕會一開始就影響到以上問題希望有幸能讓布丁大大抽空指導,謝謝m(__)m回覆刪除回覆布丁布丁吃布丁2019年2月12日晚上11:18To遊戲狼,問題1:建議你fork我的repo再去修改,jsbin上可能會有什麼額外的限制,我不確定。

fork的用法:https://git-scm.com/book/zh-tw/v2/GitHub-%E5%8F%83%E8%88%87%E4%B8%80%E5%80%8B%E5%B0%88%E6%A1%88問題2:取消網頁載入後就點選按鈕的指令就好了用註解幫你標示出來了https://github.com/pulipulichen/jieba-js/blob/master/index.html#L194fort我的repo,自行改改看吧。

有什麼建議可以用pullrequest傳送合併請求加油刪除回覆回覆回覆布丁布丁吃布丁2019年2月19日晚上7:51網頁版的斷詞工具雖然用起來很簡單,如果要一口氣處理大量文件的話,我比較推薦另一篇的工具Python-Jiebahttp://blog.pulipuli.info/2019/01/python-jieba-word-segmentation-and-part.html請根據需求來決定要用那個工具吧回覆刪除回覆回覆布丁布丁吃布丁2020年5月10日上午11:25Jieba-JS前端介面更新囉現在把輸入輸出、以及設定的介面拆開了輸入輸出之後,可以接到繪製文字雲、文本分析、主題分析的工具http://4.bp.blogspot.com/-y8swiHm6qjU/XrdzV-ZblFI/AAAAAAAEpF4/vME37JyEXS4sN3tzlS6T6EPxuUJ16AEwgCK4BGAYYCw/s1600/2020-05-10_111957.png設定加上了詞幹分析(stemming),也修正了n-gram分析中英文混雜文字時的問題http://1.bp.blogspot.com/-SLCUp5nbsVY/XrdzV_dAp-I/AAAAAAAEpF0/LkJd5_p57VUdmvdY37jbEfcVsexHPTr8QCK4BGAYYCw/s1600/2020-05-10_112019.png做一下記錄回覆刪除回覆回覆匿名2020年8月4日晚上11:22您好我在使用線上斷詞的時候突然無法使用並一直在跑進度條請問線上斷詞有維修時間嗎謝謝回覆刪除回覆布丁布丁吃布丁2020年8月5日上午10:58您好,這是純瀏覽器端的工具,跟伺服器沒有關係。

如果程式不能運作,請嘗試清除瀏覽器快取後再試試看。

不然就是您先拿比較短的文字來試著斷詞看看能不能運作。

如果可以,再試試看比較長的文字。

如果都不行,您可以把有問題的文字放上來,我有空會再來修https://upload.express/這是上傳短期暫存檔案的網站,供您參考刪除回覆回覆回覆匿名2020年10月16日中午12:55https://jsfiddle.net/7pd9e0fz/3/想請教一下,這段CODE可以在PC上運行成功,但在手機上的ChromeSafari也會顯示scripterror請問我可以怎解決,因為在寫一個網站,但手機上會卡在這步.回覆刪除回覆布丁布丁吃布丁2020年10月20日晚上11:27您好,不,您上面那段網址的程式碼是不能運作的JSFiddle把程式碼分的很開我改寫了你原本的程式碼,這樣就能順利運作https://jsfiddle.net/zqvw723g/3/主要是幾個需要引用的網址都移到左邊的「Resources」裡面去設定最後可以跑得出結果我測試過Windows的Chrome以及Android的Chrome兩者都可以您再確認一下,好嗎?刪除回覆回覆匿名2020年10月21日上午11:31你好,感謝回覆,我手上只有iphone,我剛剛和另一個使用iphone使用者也測試過,的確在iphone上的Chrome和Safari也用不到在console中會顯示"沒有資料""Scripterror.""Scripterror.""Scripterror."刪除回覆回覆布丁布丁吃布丁2020年10月21日晚上8:37我手邊沒有iPhone裝置,剩下的請您自行想辦法了刪除回覆回覆回覆Unknown2021年10月7日下午4:25網誌管理員已經移除這則留言。

回覆刪除回覆回覆Unknown2022年2月16日下午3:35想請教布丁大,會有機會出,如何寫停用詞方法嗎?謝謝回覆刪除回覆布丁布丁吃布丁2022年2月17日上午10:44您好,1.開啟JiebaJShttps://pulipulichen.github.io/jieba-js/2.點選右上角的「Configuration」https://blogger.googleusercontent.com/img/a/AVvXsEhuG4815zRPTVAOPa9_rN0uRwfe3qkXgM178uPu1gSQdnOdwCbpF22R59Rc1l3MfnNa53Lzihhn6hJDvr9TygXPbXC5CcfRk5g0LG99hkqe7QZJVVm2P0R-Yf0aMMFXLXw1S_tnaiTv6Mv_fGPGmdYjKK_jeuyHcdAs_5xBEHti0zZ8E0b8Phw3.停用詞功能「StopWords」在最下面https://blogger.googleusercontent.com/img/a/AVvXsEghHh8y1-a2ahSV4_9pnvda_9ojVLEBhPIr4WNlS9vFD5ZbLfbANwreLbof6hiBOzOR96nJICayAu2qpPlpXGWO-FfwBO8-yhc2g3en0JwXH53Prt9WWiPFKxvRf1qOTumhbPvHQOn09aiHop5qeLJ6MG0a6fWa9c5qPtzyTQ52zC836GWbvkw刪除回覆回覆回覆Unknown2022年2月17日下午3:04布丁大您好,想詢問的是停用詞的寫法,小弟公司最近要寫jieba-js斷字,小弟研究過大大您的github還是不了解如何使用,故想詢問大大停用詞寫法。

回覆刪除回覆布丁布丁吃布丁2022年2月17日下午6:43您好,嗯...看起來,您是要自己寫程式來處理斷詞的問題。

如果是Node.js的純程式的話,我的博士論文使用的是novel-segmenthttps://www.npmjs.com/package/novel-segment加入停用字的寫法是:segment.loadStopwordDict('stopword.txt');stopword.txt的內容例如:之所以因為這樣就可以了。

至於要不要用Jieba-JS嘛...有其他寫得更好的套件,我就不強求Jieba-JS要做多好了。

刪除回覆回覆Unknown2022年2月18日上午8:47感謝布丁大,小弟再研究看看,感謝您刪除回覆回覆Unknown2022年2月18日上午10:50不好意思,想再詢問布丁大,VS2017該如何安裝novel-segment呢,我使用NuGet安裝無法安裝,我將github(novel-segment的)載入放進我的專案裡,也無法,想詢問布丁大是如何載入的呢?刪除回覆回覆布丁布丁吃布丁2022年2月18日下午6:24您好,novel-segment是Node.js的套件,必須要在Node.js的環境下才能使用。

您可能要先看看您要使用哪一種程式語言來做斷詞,每種程式語言會有對應的套件可供使用。

加油。

刪除回覆回覆Unknown2022年2月22日下午5:29謝謝大大,小弟再研究一下,謝謝您!!!刪除回覆回覆布丁布丁吃布丁2022年2月25日凌晨1:24您好,如果您需要簡單操作的斷詞工具的話,不妨看一下我最近整理的Python-Jieba專案。

https://blog.pulipuli.info/2019/01/python-jieba-word-segmentation-and-part.html?showComment=1645697319572#c7209462930443520658用Docker包裝,就讓功能變得很簡單了。

可以參考看看。

刪除回覆回覆回覆新增留言載入更多… CommentTools: Chooseone... UploadImage(imgur) UploadVideo(Streamable) UploadTemporaryFile(Upload.express) CodeFormatter(forHTMLorXMLcode) CommentsFeed(JSONformat) CommentsFeed(XMLformat) 較新的文章 首頁 較舊的文章 訂閱: 張貼留言(Atom) ::: AboutMe 布丁布丁吃布丁 這個布丁是在無聊的世界中找尋樂趣的一種不能吃的食物,喜愛動漫畫、遊戲、程式,以及跟世間脫節的生活步調。

FacebookFanpage NowLoading... RandomPosts Guestbook RecentPosts Comments ::: 聯絡布丁 信箱:[email protected] 提問: 留言板 聯絡時間:週一~週日24小時 BuyMeACoffee(Donate) 如果有幫到您的話,請布丁喝杯咖啡吧! 進入贊助捐款網頁 Labels (AllLabels) 日記 (235) 輔大圖資 (166) 電腦軟體 (129) 政大圖檔 (113) 期刊論文閱讀 (98) Programming/JavaScript (85) 作品 (84) Blogger (77) 網路管理 (71) 記事 (58) DSpace (56) JavaScript (56) OS/ProxmoxVE (52) 程式寫作 (50) 碩士畢業論文 (47) Proxmox (42) Android (39) OS/Android (37) Presentation (36) OS/Linux (34) DataMining (31) Software/Weka (31) Course (30) Linux (29) 研究方法 (29) 虛擬機器 (29) DLLL-CIAS (26) OS/Windows (26) Software/Zotero (26) Work/Widget (26) Zotero (26) 新玩具 (26) Software/Windows (25) 程式語言/JavaScript (25) 網站服務 (25) 雲端科技與圖書館行動服務研習班(2014) (24) Software/GoogleDoc (23) Software/LibreOffice (23) Programming/PHP (22) 作業報告 (22) 研究所推甄 (19) 演講心得 (18) Windows/電腦軟體 (17) 資訊計量學 (17) Series/BigDataAnalysisCourse (16) 無題 (16) 課程/圖書資訊學研究趨勢 (16) PHP (15) Programming/AutoIt (15) GitHub (14) Programming/R (14) Statistics (14) 圖資學術界 (13) Software/Word (12) 課程/國際檔案學 (12) Series/LibreOfficeCalcTemplate (11) Software/OwnCloud (11) Software/R (11) VirtualMachine/VirtualBox (11) VirtualBox (11) 極短 (11) AutoIt (10) NetBeans (10) Server/ownCloud (10) Software (10) Software/Google (10) Software/NetBeans (10) Zentyal (10) 作業系統/Linux (10) KALS (9) Programing/PHP (9) Programming/PhoneGap (9) Research (9) Research/TextMining (9) 教學課程 (9) 課程/檔案應用研究 (9) 輔漫 (9) GLPI (8) Koha (8) OS/Chromebook (8) OS/Koha (8) Series/NOUWord (8) Software/SPSS (8) Work (8) 政大平價美食 (8) 數位圖書館 (8) CSS (7) OS/Zentyal (7) Plurk (7) Programming/CSS (7) Programming/Node.js (7) Drawing (6) OS/FreeNAS (6) Programming/APP (6) Service/GitHub (6) Software/PostgreSQL (6) Software/PostreSQL (6) Tool/NetBeans (6) VirtualMachine/OpenVZ (6) 報告/教學課程 (6) 發表 (6) 2009詐欺案件 (5) Note/Paper (5) Programming/Electron (5) Programming/Java (5) Programming/Python (5) Software/Firefox (5) Software/Inkscape (5) Work/Windows (5) 評論 (5) 3C (4) IDE (4) Library/ORCID (4) LibreOfficeCalcCourse (4) Programming/Database (4) Programming/SeleniumIDE (4) Programming/Vue.js (4) Research/SequentialAnalysis (4) Selenium (4) Server/OCS (4) Software/Browser (4) Software/Notepad++ (4) Software/PDF (4) Software/Pentaho (4) WebService (4) 博士班考試 (4) 問答訪談 (4) 課程/資訊行為與資訊服務 (4) 讀者服務研討 (4) CKEditor (3) Drupal (3) GAME (3) GoogleAnalytics (3) Hardware (3) Hardware/Notebook (3) OCS (3) Programming/CKEditor (3) Series/WekaImageClassification (3) Server/ApacheSolr (3) Software/Cortana (3) Software/Drupal (3) VirtualMachine (3) 活動籌辦 (3) 演講 (3) 生活/日記 (3) 網站系統/ownCloud (3) 課程/檔案學 (3) 遊戲 (3) 閱讀學習 (3) AngularJS (2) EMAIL-KM (2) GAME/PokemonGO (2) IPFire (2) MachineLearning (2) OS/IPFire (2) OS/pfSense (2) OSSIM (2) Programming/AdonisJs (2) Research/SocialNetworkAnalysis (2) Server/GitLab (2) Software/CWISE (2) Software/Office (2) Software/OpenLiveWriter (2) Software/WordPress (2) Software/mRemoteNG (2) Sponsored (2) VirtualMachine/Docker (2) pfSense (2) ニコニコ動画 (2) 國立政治大學 (2) 圖書資訊學研討 (2) 布丁通信 (2) 技術服務研討 (2) 生活/政大平價美食 (2) 研究方法\序列分析 (2) 研究領域/閱讀學習 (2) 硬體設備 (2) 系統/WordPress (2) 輕小說 (2) 電腦軟體/R (2) 3C/Note8 (1) Auto (1) Hardware/Teclast (1) Linux/WINE (1) Programming/AngularJS (1) Programming/HTML (1) Programming/SVG (1) Programming/Svelte (1) Programming/WebDesign (1) Programming/Webpack (1) Publication/Conference (1) RIME (1) Research/Infometric (1) SecondLife (1) Server/Apache (1) Software/ApacheTika (1) Software/DSpace (1) Software/FileZilla (1) Software/ImageMagick (1) Software/中州韻輸入法 (1) TimemarktoSSA (1) Travel (1) Userscript (1) 國家考試 (1) 國立空中大學 (1) 專題 (1) 課程/計算智能與商業分析 (1) 販售 (1) 資訊管理/網站管理 (1) 電視 (1)



請為這篇文章評分?