Wordのセグメンテーションフレームワークjcseg、はじめに

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のを。
    }

 

おすすめ

転載: www.cnblogs.com/kangniuniu/p/11138789.html