kuromoji で形態素解析を行いたいです。
その際にneologed辞書を使いたいのですが、調べるとelasticsearchやluceneでのやり方が出てくるですが、atilikaだけではできないのですか?
質問の仕方も間違っているかもしれません。解釈の仕方もこれで合ってるのかも教えて頂けると幸いです!
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
公式サイト https://www.atilika.com/ja/kuromoji/ によれば、kuromoji は atilika社が現在オープンソースのプロジェクトとして保有しているものなので、「atilikaを使う」というものではありません。
KuromojiはApache Lucene及びApache Solrの日本語対応の土台となっています。Elasticsearchにも使われています。
Kuromojiは単体でも利用可能です。先述したURLの最下部にサンプルコードならびにmavenを利用した導入方法が簡潔に書かれているので、そちらで試すことができるでしょう。
実行結果:(JDK8)
お 接頭詞,名詞接続,*,*,*,*,お,オ,オ 寿司 名詞,一般,*,*,*,*,寿司,スシ,スシ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 食べ 動詞,自立,*,*,一段,連用形,食べる,タベ,タベ たい 助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ 。 記号,句点,*,*,*,*,。,。,。
--- kuromoji + neologd の動作について追記 ---
2019/10/13 の段階ですが、以下の記事を参考に動作するバージョンに切り替えて実行しています。
なお、LuceneやElasticSearchのクラスは依存するライブラリには含まれますが、インストールやビルドなどは一切していません。
参考Qiita:https://qiita.com/aono-masashi/items/c4f2d1b62589938a6238
ただしこのままだと動作できないので、pom.xmlを次のように追加。
xml
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6...(省略)... 7 <repositories> 8 <!-- codelibs.orgを追加 --> 9 <repository> 10 <id>codelibs.org</id> 11 <name>CodeLibs Repository</name> 12 <url>https://maven.codelibs.org/</url> 13 </repository> 14 </repositories> 15...(省略)... 16 <dependencies> 17 <dependency> 18 <groupId>com.atilika.kuromoji</groupId> 19 <artifactId>kuromoji-ipadic</artifactId> 20 <version>0.9.0</version> 21 </dependency> 22 <dependency> 23 <groupId>org.codelibs</groupId> 24 <artifactId>elasticsearch-analysis-kuromoji-neologd</artifactId> 25 <version>1.6.0</version> 26 </dependency> 27 <dependency> 28 <groupId>org.codelibs</groupId> 29 <artifactId>lucene-analyzers-kuromoji-ipadic-neologd</artifactId> 30 <version>8.1.0-20190930</version> 31 </dependency> 32 </dependencies> 33</project>
実行したサンプルコード:
java
1package com.github.apz.java8sample; 2 3import java.io.IOException; 4import java.io.StringReader; 5import java.util.ArrayList; 6import java.util.List; 7 8import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; 9import org.codelibs.neologd.ipadic.lucene.analysis.ja.JapaneseTokenizer; 10 11/** 12 * @author a-pz 13 * 14 */ 15public class KuromojiSample { 16 private List<String> kuromojineologd(String src) { 17 List<String> ret = new ArrayList<>(); 18 try (JapaneseTokenizer jt = 19 // JapaneseTokenizerの引数は(ユーザー辞書, 記号を無視するか, モード) 20 new JapaneseTokenizer(null, false, JapaneseTokenizer.Mode.NORMAL)) { 21 CharTermAttribute ct = jt.addAttribute(CharTermAttribute.class); 22 jt.setReader(new StringReader(src)); 23 jt.reset(); 24 while (jt.incrementToken()) { 25 ret.add(ct.toString()); 26 } 27 } catch (IOException e) { 28 e.printStackTrace(); 29 } 30 return ret; 31 } 32 33 public static void main(String[] args) { 34 KuromojiSample sample = new KuromojiSample(); 35 sample.execute(); 36 } 37 38 public void execute() { 39 System.out.println(kuromojineologd("東京スカイツリーできゃりーぱみゅぱみゅとDAIGOがロケしてた。")); 40 System.out.println(kuromojineologd("ヨツンヴァインになれよ。あくしろよ。")); 41 } 42 43} 44
投稿2019/10/13 04:09
編集2019/10/13 08:43総合スコア12011
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/13 04:55
2019/10/13 08:35
2019/10/13 13:40
2019/10/15 10:34 編集
2019/10/16 02:09
2019/10/16 04:14