1 Star 0 Fork 0

jimuyouyou / jsfenci

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
index.min.js 7.09 KB
一键复制 编辑 原始数据 按行查看 历史
jimuyouyou 提交于 2020-08-18 07:07 . update segment word
var JsFenciDict=["家乡","松花","松花江","那里","四季","四季迷人","迷人","花香","hello","kitty","fine"];var JsFenciStop={'第二':1,'一番':1,'一直':1,'一个':1,'一些':1,'许多':1,'有的是':1,'也就是说':1,'末##末':1,'':1,'':1,'':1,'哎呀':1,'哎哟':1,'':1,'':1,'俺们':1,'':1,'按照':1,'':1,'吧哒':1,'':1,'罢了':1,'':1,'':1,'本着':1,'':1,'比方':1,'比如':1,'鄙人':1,'':1,'彼此':1,'':1,'':1,'别的':1,'别说':1,'':1,'并且':1,'不比':1,'不成':1,'不单':1,'不但':1,'不独':1,'不管':1,'不光':1,'不过':1,'不仅':1,'不拘':1,'不论':1,'不怕':1,'不然':1,'不如':1,'不特':1,'不惟':1,'不问':1,'不只':1,'':1,'朝着':1,'':1,'趁着':1,'':1,'':1,'':1,'除此之外':1,'除非':1,'除了':1,'':1,'此间':1,'此外':1,'':1,'从而':1,'':1,'':1,'':1,'但是':1,'':1,'当着':1,'':1,'':1,'':1,'的话':1,'':1,'等等':1,'':1,'叮咚':1,'':1,'对于':1,'':1,'多少':1,'':1,'而况':1,'而且':1,'而是':1,'而外':1,'而言':1,'而已':1,'尔后':1,'反过来':1,'反过来说':1,'反之':1,'非但':1,'非徒':1,'否则':1,'':1,'嘎登':1,'':1,'':1,'':1,'':1,'各个':1,'各位':1,'各种':1,'各自':1,'':1,'根据':1,'':1,'':1,'故此':1,'固然':1,'关于':1,'':1,'':1,'果然':1,'果真':1,'':1,'':1,'哈哈':1,'':1,'':1,'':1,'何处':1,'何况':1,'何时':1,'':1,'':1,'哼唷':1,'呼哧':1,'':1,'':1,'还是':1,'还有':1,'换句话说':1,'换言之':1,'':1,'或是':1,'或者':1,'极了':1,'':1,'及其':1,'及至':1,'':1,'即便':1,'即或':1,'即令':1,'即若':1,'即使':1,'':1,'几时':1,'':1,'':1,'既然':1,'既是':1,'继而':1,'加之':1,'假如':1,'假若':1,'假使':1,'鉴于':1,'':1,'':1,'较之':1,'':1,'接着':1,'结果':1,'':1,'紧接着':1,'进而':1,'':1,'尽管':1,'':1,'经过':1,'':1,'就是':1,'就是说':1,'':1,'具体地说':1,'具体说来':1,'开始':1,'开外':1,'':1,'可见':1,'可是':1,'可以':1,'况且':1,'':1,'来着':1,'':1,'例如':1,'':1,'':1,'连同':1,'两者':1,'':1,'':1,'':1,'另外':1,'另一方面':1,'':1,'':1,'':1,'慢说':1,'漫说':1,'':1,'':1,'':1,'每当':1,'':1,'莫若':1,'':1,'某个':1,'某些':1,'':1,'':1,'哪边':1,'哪儿':1,'哪个':1,'哪里':1,'哪年':1,'哪怕':1,'哪天':1,'哪些':1,'哪样':1,'':1,'那边':1,'那儿':1,'那个':1,'那会儿':1,'那里':1,'那么':1,'那么些':1,'那么样':1,'那时':1,'那些':1,'那样':1,'':1,'乃至':1,'':1,'':1,'':1,'你们':1,'':1,'':1,'宁可':1,'宁肯':1,'宁愿':1,'':1,'':1,'啪达':1,'旁人':1,'':1,'':1,'凭借':1,'':1,'其次':1,'其二':1,'其他':1,'其它':1,'其一':1,'其余':1,'其中':1,'':1,'起见':1,'起见':1,'岂但':1,'恰恰相反':1,'前后':1,'前者':1,'':1,'然而':1,'然后':1,'然则':1,'':1,'人家':1,'':1,'任何':1,'任凭':1,'':1,'如此':1,'如果':1,'如何':1,'如其':1,'如若':1,'如上所述':1,'':1,'若非':1,'若是':1,'':1,'上下':1,'尚且':1,'设若':1,'设使':1,'甚而':1,'甚么':1,'甚至':1,'省得':1,'时候':1,'什么':1,'什么样':1,'使得':1,'':1,'是的':1,'首先':1,'':1,'谁知':1,'':1,'顺着':1,'似的':1,'':1,'虽然':1,'虽说':1,'虽则':1,'':1,'随着':1,'':1,'所以':1,'':1,'他们':1,'他人':1,'':1,'它们':1,'':1,'她们':1,'':1,'倘或':1,'倘然':1,'倘若':1,'倘使':1,'':1,'':1,'通过':1,'':1,'同时':1,'':1,'万一':1,'':1,'':1,'':1,'为何':1,'为了':1,'为什么':1,'为着':1,'':1,'嗡嗡':1,'':1,'我们':1,'':1,'呜呼':1,'乌乎':1,'无论':1,'无宁':1,'毋宁':1,'':1,'':1,'相对而言':1,'':1,'':1,'向着':1,'':1,'':1,'':1,'沿':1,'沿着':1,'':1,'要不':1,'要不然':1,'要不是':1,'要么':1,'要是':1,'':1,'也罢':1,'也好':1,'':1,'一般':1,'一旦':1,'一方面':1,'一来':1,'一切':1,'一样':1,'一则':1,'':1,'依照':1,'':1,'':1,'以便':1,'以及':1,'以免':1,'以至':1,'以至于':1,'以致':1,'抑或':1,'':1,'因此':1,'因而':1,'因为':1,'':1,'':1,'':1,'由此可见':1,'由于':1,'':1,'有的':1,'有关':1,'有些':1,'':1,'':1,'于是':1,'于是乎':1,'':1,'与此同时':1,'与否':1,'与其':1,'越是':1,'云云':1,'':1,'再说':1,'再者':1,'在下':1,'':1,'咱们':1,'':1,'':1,'怎么':1,'怎么办':1,'怎么样':1,'怎样':1,'':1,'':1,'照着':1,'':1,'':1,'这边':1,'这儿':1,'这个':1,'这会儿':1,'这就是说':1,'这里':1,'这么':1,'这么点儿':1,'这么些':1,'这么样':1,'这时':1,'这些':1,'这样':1,'正如':1,'':1,'':1,'之类':1,'之所以':1,'之一':1,'只是':1,'只限':1,'只要':1,'只有':1,'':1,'至于':1,'诸位':1,'':1,'着呢':1,'自从':1,'自个儿':1,'自各儿':1,'自己':1,'自家':1,'自身':1,'综上所述':1,'总的来看':1,'总的来说':1,'总的说来':1,'总而言之':1,'总之':1,'':1,'纵令':1,'纵然':1,'纵使':1,'遵照':1,'作为':1,'':1,'':1,'':1,'':1,'':1,'':1,'':1,'喔唷':1,'':1,'':1,'':1,};function JsFenci(){this.root=new JsFenciNode(null);}
JsFenci.prototype={toBytes:function(word){var result=[];for(var i=0;i<word.length;i++){var code=word.charCodeAt(i);if(code<0x80){result.push(code);}else{result=result.concat(this.toUTF8(code));}}
return result;},toUTF8:function(c){var byte1=0xE0|((c>>12)&0x0F);var byte2=0x80|((c>>6)&0x3F);var byte3=0x80|(c&0x3F);return[byte1,byte2,byte3];},toUTF16:function(b1,b2,b3){var byte1=(b1<<4)|((b2>>2)&0x0F);var byte2=((b2&0x03)<<6)|(b3&0x3F);var utf16=((byte1&0x00FF)<<8)|byte2
return utf16;},add:function(word){var node=this.root,bytes=this.toBytes(word),len=bytes.length;for(var i=0;i<len;i++){var c=bytes[i];if(!(c in node.childs)){node.childs[c]=new JsFenciNode(c);}
node=node.childs[c];}
node.asWord();},search:function(bytes){var node=this.root,len=bytes.length,result=[];var word=[],j=0;for(var i=0;i<len;i++){var c=bytes[i],childs=node.childs;if(!(c in childs)){return result;}
if(c<0x80){word.push(String.fromCharCode(c));}else{j++;if(j%3==0){var b1=bytes[i-2];var b2=bytes[i-1];var b3=c;word.push(String.fromCharCode(this.toUTF16(b1,b2,b3)));}}
if(word.join('')in JsFenciStop){return result;}
var cnode=childs[c];if(cnode.isWord()){cnode.addCount();result.push(word.join(''));}
node=cnode;}
return result;},splitWords:function(words){var bytes=this.toBytes(words);var start=0,end=bytes.length-1,result=[];while(start!=end){var word=[];for(var i=start;i<=end;i++){var b=bytes[i];word.push(b);var finds=this.search(word);if(finds!==false&&finds.length>0){result=result.concat(finds);}}
start++;}
return result;},init:function(userDict){var dict=userDict||JsFenciDict;for(var i=0;i<dict.length;i++){this.add(dict[i]);}}};function JsFenciNode(_byte){this.childs={};this._byte=_byte||null;this._isWord=false;this._count=0;}
JsFenciNode.prototype={isWord:function(){return(this._isWord&&(this._count==0));},asWord:function(){this._isWord=true;},addCount:function(){this._count++;},getCount:function(){return this._count;}};
1
https://gitee.com/jimuyouyou/jsfenci.git
git@gitee.com:jimuyouyou/jsfenci.git
jimuyouyou
jsfenci
jsfenci
master

搜索帮助