SlideShare une entreprise Scribd logo
1  sur  14
Solrから使うOpenNLPの
固有表現抽出
株式会社ロンウイット 関口宏司
@kojisays
自己紹介
• ロンウイット 創業者兼社長
• Apache Lucene/Solr/OpenNLP コミッター兼PMCメンバー、
ASFメンバー
ASFメンバーって・・・?
https://www.rondhuit.com/miracle-org-asf.html
• 書籍執筆&監修
• Apache Lucene/Solr, Apache Ant, etc.
2
Apache OpenNLP
• 基本的なNLPタスクのツールキット(教師あり機械学習)
• [分類] 言語判別、文書分類
• [系列ラベリング] 文識別、単語分割、品詞タグ付け、固有表
現抽出、チャンク化
• [その他NLP] レンマ化、構文解析
• 海外ではビジネス利用もされている(Apache License)
• Java API。柔軟な素性設定
3
系列ラベリング
• データ系列の入力に対し、クラスの系列を出力
• 品詞タグ付け、固有表現抽出
• 普通の分類問題とは異なる
• 普通の分類問題:F → C
• 系列ラベリング:F1F2…Fn → C1C2…Cn
• ラベルが系列内の他のラベルに依存
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
F1 F2 F3 F4 F5
Time flies like an arrow.
[名詞] [動詞] [前置詞] [冠詞] [名詞]
C1 C2 C3 C4 C5
直前が名詞だと動詞に変わる
4
• 通常の分類器の逐次適用(←OpenNLPが採用)
• Ciの推定に、Fi, Fi-1, Fi+1やCi-1などを用いる
• その他の解き方:HMM、CRF
系列ラベリング問題の解き方
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
5
F1 F2 F3 F4 F5 …
C1 C2 C3 C4 C5 …
固有表現抽出
• 日本語などの自然言語で書かれたテキストから、固有名詞
を属性付き(固有名詞タイプ)で抽出するNLPタスクの一
種
• デモ(用意するもの)
• apache-opennlp-1.9.0-bin.tar.gz
• rondhuit-ja-ner-1.0.0.zip
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
6
OpenNLPの
日本語対応への道
• 洋モノのNLPツールにありがちな問題
• 「テキストはあらかじめ単語分割されているでしょ、
普通」
⇒ Lucene/Solr はよくできてる!!
• 日本語に関心がない・・・
• みんな忙しい・・・
7
OpenNLPの
日本語対応の道• 日本語と英語の形態素解析の違い
• 英語:(形態素を決める+)品詞を決める
illegaly = il + legal + ly ← まれ。多くは「形態素」≒「単語」なのでここまでやらない
• 日本語:単語境界を決める+品詞を決める
• ようやく素性としてのひらがなとカタカナ字種を識別させることに成功!
(1.9.0)
isentthemachine
i(PPSS) sent(VBD) the(AT) machine(NP)
i(PPSS) sent(VBD) them(PPO) a(AT) chine(NP)
8
Solr+OpenNLP
• OpenNLPExtractNamedEntitiesUpdateProcessorFactory
• Solr 7.3.0 以降(LUCENE-2899)
• 現状、複数固有表現タイプ対応に不具合あり
• ファセットでの利用
9
q=ハワイ
予算で絞り込む
10〜15万円
出発地で絞り込む
羽田空港
Solrのファセット
& 絞り込み検索
10
ユーザが欲しい
文書集合
検索システムが
返す文書集合
構造化文書
ツアー名 価格 空港
ハワイオアフ島
ダイヤモンドヘッド
28万円 成田空港
ハワイワイキキ
ビーチ3泊5日
13万円 羽田空港
11
インデクシング時に
文書を構造化
記事 イベント 人名 地名 ・・・
安倍⾸相は12⽇⽇ 、甲府市で開かれた自民党
ゴルフコンペで...
ゴルフコンペ 安倍 甲府市
注目はグランプリファイナルで4連覇を達成し
た羽生。年末の全日本選手権はインフルエンザ
による影響で欠場した。その後静養し、カナダ
・トロントへ向け出発。
グランプリファイ
ナル
全日本選手権
羽生
カナダ
トロント
人名:安倍
地名:甲府市
q=ゴルフ
「記事」から自動抽出されたキーワード
12
まとめ
• Apache OpenNLP の業務利用拡大に期待
• 日本語の場合、形態素解析器利用前提で(1.9.0〜)
• 応用例
• 情報検索:検索精度向上
• ニュース記事キーワード抽出、自動タグ付け、・・・
13
参考
• Apache OpenNLP
• Web: https://opennlp.apache.org/
• doc: https://opennlp.apache.org/docs/1.9.0/manual/opennlp.html
• ロンウイットホームページ
• 最新 Apache OpenNLP 1.9.0 で日本語固有表現抽出を試す
https://www.rondhuit.com/apache-opennlp-1-9-0-ja-ner.html
14

Contenu connexe

Tendances

Tendances (20)

分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
Paxos
PaxosPaxos
Paxos
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
lsh
lshlsh
lsh
 
失敗事例で学ぶ負荷試験
失敗事例で学ぶ負荷試験失敗事例で学ぶ負荷試験
失敗事例で学ぶ負荷試験
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
 

Similaire à Solr から使う OpenNLP の日本語固有表現抽出

Similaire à Solr から使う OpenNLP の日本語固有表現抽出 (17)

Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1Learning-to-Rank meetup Vol. 1
Learning-to-Rank meetup Vol. 1
 
オープンソース入門
オープンソース入門オープンソース入門
オープンソース入門
 
20180725 Learning To Rank meetup
20180725 Learning To Rank meetup20180725 Learning To Rank meetup
20180725 Learning To Rank meetup
 
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
20021127 ku-librarians勉強会 #38 : Where can I go? : OpenURLによる状況判断型リンク(SFXを中心として)
 
OpenStack環境構築支援について
OpenStack環境構築支援についてOpenStack環境構築支援について
OpenStack環境構築支援について
 
頑張りすぎないScala
頑張りすぎないScala頑張りすぎないScala
頑張りすぎないScala
 
solr勉強会資料
solr勉強会資料solr勉強会資料
solr勉強会資料
 
JJUG CCC 2014 ATL
JJUG CCC 2014 ATLJJUG CCC 2014 ATL
JJUG CCC 2014 ATL
 
Reading 1st dRuby
Reading 1st dRubyReading 1st dRuby
Reading 1st dRuby
 
Langsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPSLangsmith OpeLa handmade self-hosted OS and LPS
Langsmith OpeLa handmade self-hosted OS and LPS
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
 
Code4Lib 2013参加報告
Code4Lib 2013参加報告Code4Lib 2013参加報告
Code4Lib 2013参加報告
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
 
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
NLP4L - 情報検索における性能改善のためのコーパスの活用とランキング学習
 

Plus de Koji Sekiguchi

情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
Koji Sekiguchi
 
LUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizerLUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizer
Koji Sekiguchi
 
情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介
Koji Sekiguchi
 
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
Koji Sekiguchi
 
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョンLuceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Koji Sekiguchi
 
Lucene terms extraction
Lucene terms extractionLucene terms extraction
Lucene terms extraction
Koji Sekiguchi
 
Visualize terms network in Lucene index
Visualize terms network in Lucene indexVisualize terms network in Lucene index
Visualize terms network in Lucene index
Koji Sekiguchi
 
WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成
Koji Sekiguchi
 
OpenNLP - MEM and Perceptron
OpenNLP - MEM and PerceptronOpenNLP - MEM and Perceptron
OpenNLP - MEM and Perceptron
Koji Sekiguchi
 
自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門
Koji Sekiguchi
 
Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0
Koji Sekiguchi
 

Plus de Koji Sekiguchi (20)

20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
20221209-ApacheSolrによるはじめてのセマンティックサーチ.pdf
 
Lucene 6819-good-bye-index-time-boost
Lucene 6819-good-bye-index-time-boostLucene 6819-good-bye-index-time-boost
Lucene 6819-good-bye-index-time-boost
 
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
An Introduction to NLP4L (Scala by the Bay / Big Data Scala 2015)
 
An Introduction to NLP4L
An Introduction to NLP4LAn Introduction to NLP4L
An Introduction to NLP4L
 
Nlp4 l intro-20150513
Nlp4 l intro-20150513Nlp4 l intro-20150513
Nlp4 l intro-20150513
 
コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用コーパス学習による Apache Solr の徹底活用
コーパス学習による Apache Solr の徹底活用
 
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
 
LUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizerLUCENE-5252 NGramSynonymTokenizer
LUCENE-5252 NGramSynonymTokenizer
 
情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介情報検索におけるランキング計算の紹介
情報検索におけるランキング計算の紹介
 
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
系列パターンマイニングを用いた単語パターン学習とWikipediaからの組織名抽出
 
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョンLuceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン
 
Html noise reduction
Html noise reductionHtml noise reduction
Html noise reduction
 
Lucene terms extraction
Lucene terms extractionLucene terms extraction
Lucene terms extraction
 
Visualize terms network in Lucene index
Visualize terms network in Lucene indexVisualize terms network in Lucene index
Visualize terms network in Lucene index
 
WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成WikipediaからのSolr用類義語辞書の自動生成
WikipediaからのSolr用類義語辞書の自動生成
 
HMM viterbi
HMM viterbiHMM viterbi
HMM viterbi
 
NLP x Lucene/Solr
NLP x Lucene/SolrNLP x Lucene/Solr
NLP x Lucene/Solr
 
OpenNLP - MEM and Perceptron
OpenNLP - MEM and PerceptronOpenNLP - MEM and Perceptron
OpenNLP - MEM and Perceptron
 
自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門自然言語処理における機械学習による曖昧性解消入門
自然言語処理における機械学習による曖昧性解消入門
 
Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0
 

Solr から使う OpenNLP の日本語固有表現抽出

Notes de l'éditeur

  1. ロゴについて(OPENNLP-6) 本:関口のアイディア。辞書またはモデルを表す 羽ペン:Tommasoのアイディア。
  2. word2vec もそう。