neologd를 사용하여 형태소 분석하고 싶습니다. 가능하면 의존관계는 둥근 던지기에.

neologd는?



htps : // 기주 b. 이 m / 네오 gd / 메카 b - 빠 ぢ c - 네오 gd / b ぉ b / 뭐 r / 레아 D 메. 그럼. md
요컨대 신어에 대응하는 ipa 사전의 확장판

이것을 java에서 사용하려고한다면
  • 빌드 할 환경 구축
  • 열심히 mecab-ipadic-neologd 빌드
  • java 측에서 네이티브 mecab을 바인딩하거나 호출

  • 같은 일을 해야 한다・・・
    게다가 네이티브 빌드 한 mecab을 이용하기 때문에 환경에의 의존 관계가 높다
    사쿠토 서버에 배포하여 이용하는 것은 어렵습니다 ...

    네가 neologd의 사전만 pure java의 검은 문자 로 사용할 수 있을까라고 생각해 조사했다.
    htp // d. 하테나. 네. jp/카즈히라/20150316/1426520209
    아멘도 그래・・・

    따라서 더 많은 검색 결과



    ht tp // 모코타타바 c p. 하나 mblr. 코 m / 포 st / 114318023832 / 네오 gd - 쿠로모지
    오 만들어 공개해 준다.
    하지만 스스로 빌드할까...
    생각하고 아래까지 읽으면

    Elasticsearch 사용자를 위해 아래에 플러그인을 게시해 주시기 바랍니다.
    htps : // 기주 b. 코 m / 코데 ぃ bs / 에 s s c ace rch

    하고 싶은 것은 형태소 해석만 어째서 lucene이든 elasticsearch이든 어느 쪽이라도 좋기 때문에 이것을 이용해 보자

    종속성 처리



    여기가 귀찮기 때문에 여러가지 조사한 것입니다.
    빨리 maven 사용하여 pom.xml에 다음을 추가하기 만

    pom.xml
    <dependency>
        <groupId>org.codelibs</groupId>
        <artifactId>elasticsearch-analysis-kuromoji-neologd</artifactId>
        <version>1.6.0</version>
    </dependency>
    

    매우 간단, 조사하는 것이 좋았다 ...

    아래 테스트 코드

    KuromojiTest.java
    import java.io.IOException;
    import java.io.StringReader;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
    import org.codelibs.neologd.ipadic.lucene.analysis.ja.JapaneseTokenizer;
    
    
    public class KuromojiTest {
    
        /**
         * 分かち書きした文章をリストにして返す。
         * 
         * @param src
         * @return
         */
        private List<String> kuromojineologd(String src){
            List<String> ret = new ArrayList<>();
            try(JapaneseTokenizer jt = 
                    // JapaneseTokenizerの引数は(ユーザー辞書, 記号を無視するか, モード)
                    new JapaneseTokenizer(null, false, JapaneseTokenizer.Mode.NORMAL)){
                CharTermAttribute ct = jt.addAttribute(CharTermAttribute.class);
                jt.setReader(new StringReader(src));
                jt.reset();
                while(jt.incrementToken()){
                    ret.add(ct.toString());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return ret;
        }
    
        /**
         * main
         * 自分をnewしてexecuteメソッド呼ぶだけ。
         * こうすることで他メソッドを作成するときに無駄にstatic化しなくてすむ
         * 
         * @param args
         */
        public static void main(String[] args) {
            new KuromojiTest().execute();
        }
    
        /**
         * 事実上のmain
         */
        public void execute(){
            System.out.println(kuromojineologd("東京スカイツリーできゃりーぱみゅぱみゅとDAIGOがロケしてた。"));
            System.out.println(kuromojineologd("ヨツンヴァインになれよ。あくしろよ。"));
        }
    }
    

    출력
    [東京スカイツリー, で, きゃりーぱみゅぱみゅ, と, DAIGO, が, ロケ, し, て, た, 。]
    [ヨツンヴァイン, に, なれ, よ, 。, あくしろよ, 。]
    

    그물 슬랭까지 나눠 쓸 수 있다고 참았어.

    좋은 웹페이지 즐겨찾기