NLP4J [006-031] NLP4J で言語処理100本ノック #31 動詞
やってみます。
31. 動詞
動詞の表層形をすべて抽出せよ.
Maven
動詞の表層形をすべて抽出せよ.
現在開発中のバージョンを利用します。
<dependency>
<groupId>org.nlp4j</groupId>
<artifactId>nlp4j-core</artifactId>
<version>1.1.1.0-SNAPSHOT</version>
</dependency>
Text Data
デフォルトで利用している形態素解析(Yahoo! Japan デベロッパーネットワーク 日本語形態素解析) では、リクエストサイズの上限が900KBであり、回数に制限もあるので小さなサイズのテキストファイルを利用しています。
Java Code
package nlp4j.nokku.chap4;
import java.util.List;
import nlp4j.Document;
import nlp4j.DocumentAnnotator;
import nlp4j.DocumentAnnotatorPipeline;
import nlp4j.Keyword;
import nlp4j.crawler.Crawler;
import nlp4j.crawler.TextFileLineSeparatedCrawler;
import nlp4j.impl.DefaultDocumentAnnotatorPipeline;
import nlp4j.index.DocumentIndex;
import nlp4j.index.SimpleDocumentIndex;
import nlp4j.yhoo_jp.YJpMaAnnotator;
public class Nokku31 {
public static void main(String[] args) throws Exception {
// NLP4Jが提供するテキストファイルのクローラーを利用する
Crawler crawler = new TextFileLineSeparatedCrawler();
crawler.setProperty("file", "src/test/resources/nlp4j.crawler/neko_short_utf8.txt");
crawler.setProperty("encoding", "UTF-8");
crawler.setProperty("target", "text");
// ドキュメントのクロール
List<Document> docs = crawler.crawlDocuments();
// NLPパイプライン(複数の処理をパイプラインとして連結することで処理する)の定義
DocumentAnnotatorPipeline pipeline = new DefaultDocumentAnnotatorPipeline();
{
// Yahoo! Japan の形態素解析APIを利用するアノテーター
DocumentAnnotator annotator = new YJpMaAnnotator();
pipeline.add(annotator);
}
// アノテーション処理の実行
pipeline.annotate(docs);
// キーワードをカウントするためにDocumentIndexを利用します。
SimpleDocumentIndex index = new SimpleDocumentIndex();
// ドキュメントの追加
index.addDocuments(docs);
List<Keyword> kwds = index.getKeywords();
kwds = kwds.stream() //
.filter(o -> o.getFacet().equals("動詞")) // 品詞が動詞
.collect(Collectors.toList());
for (Keyword kwd : kwds) {
System.err.println(kwd.getStr());
}
}
}
結果
生れ
つか
し
泣い
始め
いう
見
聞く
いう
いう
捕え
煮
食う
いう
思わ
載せ
持ち上げ
し
あっ
落ちつい
見
いう
思っ
残っ
もっ
し
逢っ
出会わ
し
吹く
咽せ
く
弱っ
飲む
いう
知っ
まとめ
package nlp4j.nokku.chap4;
import java.util.List;
import nlp4j.Document;
import nlp4j.DocumentAnnotator;
import nlp4j.DocumentAnnotatorPipeline;
import nlp4j.Keyword;
import nlp4j.crawler.Crawler;
import nlp4j.crawler.TextFileLineSeparatedCrawler;
import nlp4j.impl.DefaultDocumentAnnotatorPipeline;
import nlp4j.index.DocumentIndex;
import nlp4j.index.SimpleDocumentIndex;
import nlp4j.yhoo_jp.YJpMaAnnotator;
public class Nokku31 {
public static void main(String[] args) throws Exception {
// NLP4Jが提供するテキストファイルのクローラーを利用する
Crawler crawler = new TextFileLineSeparatedCrawler();
crawler.setProperty("file", "src/test/resources/nlp4j.crawler/neko_short_utf8.txt");
crawler.setProperty("encoding", "UTF-8");
crawler.setProperty("target", "text");
// ドキュメントのクロール
List<Document> docs = crawler.crawlDocuments();
// NLPパイプライン(複数の処理をパイプラインとして連結することで処理する)の定義
DocumentAnnotatorPipeline pipeline = new DefaultDocumentAnnotatorPipeline();
{
// Yahoo! Japan の形態素解析APIを利用するアノテーター
DocumentAnnotator annotator = new YJpMaAnnotator();
pipeline.add(annotator);
}
// アノテーション処理の実行
pipeline.annotate(docs);
// キーワードをカウントするためにDocumentIndexを利用します。
SimpleDocumentIndex index = new SimpleDocumentIndex();
// ドキュメントの追加
index.addDocuments(docs);
List<Keyword> kwds = index.getKeywords();
kwds = kwds.stream() //
.filter(o -> o.getFacet().equals("動詞")) // 品詞が動詞
.collect(Collectors.toList());
for (Keyword kwd : kwds) {
System.err.println(kwd.getStr());
}
}
}
生れ
つか
し
泣い
始め
いう
見
聞く
いう
いう
捕え
煮
食う
いう
思わ
載せ
持ち上げ
し
あっ
落ちつい
見
いう
思っ
残っ
もっ
し
逢っ
出会わ
し
吹く
咽せ
く
弱っ
飲む
いう
知っ
まとめ
NLP4J を使うと、Javaで簡単に自然言語処理ができますね!
プロジェクトURL
Author And Source
この問題について(NLP4J [006-031] NLP4J で言語処理100本ノック #31 動詞), 我々は、より多くの情報をここで見つけました https://qiita.com/oyahiroki/items/6de59273b2484a58f8d4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .