Jcsegは、フィルタリングストップワード、同義語と一致する、中国語名の識別をサポート98.4%と高い単語正解率に基づいてmmseg人気のあるアルゴリズムを達成するために、中国語の単語を使用して、オープンソースのJava開発です。そして、それはLuceneの、Solrの、elasticsearchワードインターフェースの最新バージョンを提供します。
<jcseg.version> 1.9.5 </jcseg.version> <依存性> <のgroupId> org.lionsoul.jcseg </のgroupId> <たartifactId> jcsegコア</たartifactId> <バージョン> $ {jcseg.version} </バージョン> </依存関係>
jcseg.propertiesを構成する方法
Jcseg機能#1 # -一致の数を(4-7が配置推奨最大化するために前方の間)。 jcseg.maxlen = 10 # -オープン中国名識別(1.7.0後、0オフ、1 に)。 jcseg.icnname = 1 # - のような英語の単語を混ぜ中国語の単語の最大数:以降の計画は言葉を持っている「計画。」 jcseg.mixcnlen = 4 #ペア句読点最大のコンテンツ長。 jcseg.pptmaxlen = 15 # - のような姓長修飾子:緊密「古い」(通常は1)。 jcseg.cnmaxlnadron = 1 #ストップワードの自動フィルタリング(IF 0が1を閉じたオープン) jcseg.clearstopword = 1 #自動中国語デジタル-アラビア数字IF( 0 1閉鎖オープン)を jcseg.cnnumtoarabic = 1 #自動中国語フラクションアラブ回転する場合スコア( 0オフ、1に) jcseg.cnfratoarabic = 0 # - 言葉の曖昧さの値を(あなたが変更のか分からない限り、変更しないでください)タイダウンする名前。 jcseg.nsthreshold = 1000000 。英語の句読点組成負荷のための#自動的に予約句読点、単語認識 jcseg.keeppunctuations =@%.&+ レキシコンについて# #辞書ファイルの接頭辞(例えば:LEX- - main.lex)。 lexicon.prefix = レックスの # -シソーラスファイル拡張子(例:LEX- main.lex)。 lexicon.suffix = レックス # -シソーラス・ストレージ・パス({} jar.dir / シソーラス辞書にあるデフォルトのパスとしてレキシコンは、ディレクトリJARディレクトリ表す) から#1 jcseg -1.9.2スタート:複数のディレクトリ・ローディングシソーラスをサポート';'と異なる経路がそこから離間。 #例:lexicon.path = /ジャワ/ jcseg / lex1; /ジャワ/ jcseg / lex2 lexicon.path = # -負荷が自動的に辞書(0、オン1更新されたかどうかオフ) lexicon.autoload = 1 # - シソーラス更新ポーリング時間(単位:秒) lexicon.polltime = 120 #レキシコンロード ロードロードシソーラスかどう位音声エントリー。( 0オフ、1 に) jcseg.loadpos = 0 #負荷(発音辞書エントリをロードした場合 1.7.0後、0オフ、1 に)。 jcseg.loadpinyin = 1 #か同義語辞書(ロードロードエントリ 0オフ、1 オン)。 jcseg.loadsyn = 0 #Jcseg何よりも文字を保持するかどうか。( 1予約、0が閉じ) jcseg.keepunregword = 1 #二セグメンテーション複雑な英語のセグメンテーション結果であれば。( 1で、0 閉じ) jcseg.ensencondseg = 0 #第二セグメントの最小の長さ(1より大きい推奨) jcseg.stokenminlen= 4
jcsegを初期化する方法
静的ISegmentワンセグ。 静的{ JcsegTaskConfig設定 = NULL ; // 新しいJcsegTaskConfig(); 最終ファイルjcseg_config_file = FileMgr.findFile(InformationService。クラス、 "jcseg.properties" ); もし(!jcseg_config_file = ヌル && jcseg_config_file.exists()){ 設定 = 新しいJcsegTaskConfig(jcseg_config_file.getAbsolutePath()); } 他{ InformationService.LOG.info( "見つかりませんでしjcseq.properties、デフォルトを使用!!" ); 設定 = 新しいJcsegTaskConfig(); } 文字列webRootpath = JavaPath.getAutoRootPath()+ "VitalData /情報/レキシコン" 。 文字列[] lexPath = {webRootpath}。 config.setLexiconPath(lexPath)。 ADictionary DIC = DictionaryFactory.createDefaultDictionary(設定)。 試す{ InformationService.seg = SegmentFactory.createJcseg(JcsegTaskConfig.COMPLEX_MODE、設定、DIC)。 } キャッチ(JcsegException電子){ e.printStackTrace(); } }
使用
パブリックリストの<string>セグメント(最終文字列str)はスローにIOException、JcsegException { 最終的なリストの<string> HashSetの= 新規のArrayList <ストリング> (); iword関数言葉 = nullを。 最終 長い _start = System.nanoTimeの()。 int型のカウンタ= 0 ; seg.reset(新しいにStringReader(STR)); 一方、((ワード= seg.next())!= NULL ) { 場合(word.getValue()。長さ()> = 2 ){ hashSet.add(word.getValue())。 カウンタ ++ ; } ワード = NULL ; } 最終 長い E = System.nanoTimeの()。 返すHashSetのを。 }