質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

923閲覧

kuromoji でneologedを使いたい 形態素解析の実装

fufufu000

総合スコア29

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/10/12 16:34

編集2019/10/13 02:29

kuromoji で形態素解析を行いたいです。
その際にneologed辞書を使いたいのですが、調べるとelasticsearchやluceneでのやり方が出てくるですが、atilikaだけではできないのですか?

質問の仕方も間違っているかもしれません。解釈の仕方もこれで合ってるのかも教えて頂けると幸いです!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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
A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fufufu000

2019/10/13 04:55

回答ありがとうございます! atilikaって社名だったわけですね。 ちなみに、kuromoji 単体でneologedは使えるものなんですか?
A-pZ

2019/10/13 08:35

一応できるようですね。散見しているQiitaやブログの情報そのままですと現在は動かないようですよ。 回答を編集しましたので参考にしてください。
fufufu000

2019/10/13 13:40

ありがとうございます、 想定以上の神対応に感激です! お陰で綺麗に理解することができました!
fufufu000

2019/10/15 10:34 編集

理解はできたのですが、この通りにやってもできませんでしたー coredlibが無いというエラーが出てます!
A-pZ

2019/10/16 02:09

coredlibではありませんよ、corelib です
fufufu000

2019/10/16 04:14

うっかり!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問