NEologd Casual Talksに行ってきた
NEologd Casual Talksに行ってきました。
@eichiroi 先生と一緒に書いたメモをブログにまとめました
NEologdをどう使うと便利なのか ークエリ拡張 or 検索ソート順における活用(@Quasi_quant2010)
www.slideshare.net
概要
計算を補正する言語支援としての利用例
- 使用用途
- クエリサジェストにおける前処理エラーを補正
- アシックスサージールをアシックスターサージルに変換したい
- 対処法
- NElogd辞書にあればを使う
- Neologdがあることでサージール→ターサージールに補完できた
- suggst結果の複合語を補正
- 切れすぎてしまった複合名詞をくっつける
- 「サッカー シューズ」を「サッカーシューズ」に
- NElogd辞書にあればを使う
- 背景
- 複合名詞を細かく分割する方針がある
- 複合名詞の補正Sourceとして使う
- NELOGDで使って実現したいこと
- userの検索意図を保ちつつ検索漏れを防ぐ
- Indexingのときにクエリ拡張する
- 単純に分かち書きしたものだけでなく、くっつけた長い単語(複合名詞とか)もインデックスに追加する
- 検索意図を保存するための一つの手段
- 固有表現を加味した分かち書きをする
- クエリ拡張とN-bestも併用
前処理用Pythonモジュールneologdnの紹介(@_yukinoi)
- テキストの前処理とは
- 見た目が一緒でもコンピュータは違う文字列と判別する
- テキストの処理がしやすいようにテキストを一定のルールに基づいて整えること
- 例
- 半角カナを全角に
- 「うぇーーーーい」と「うぇーい」
- 前処理やってないと
- まどかマギカとまどかマギカはちがうものと判断してしまう
- nelogdn
- nelogd用の前処理プログラム
- Python 2,3系に対応
pip install neologdn
でインストール可能
- nelogd用の前処理プログラム
質問
- 今後どういう単語をとれるようにしたいか?
- 同じ文字の繰り返しで2文字単位のもの、例えば「オラオラオラオラ」を正規化
ファッションを扱うサービスのために、Elasticsearchのユーザー辞書とシノニム辞書を作った話(@sinamon129)
- Fablicのサーバーサイドエンジニア
- RoRとES
- フリルの検索改善のためにESとuser辞書とシノニム辞書を使った
- 検索の50%ぐらいがキーワード単体の検索(+絞り込み)
- 検索パターン
- userが自由に書く
- タイトル・商品説明
- 形態・形状・セールスポイント
- 略称、表記ゆれあり
- マスターデータ系
- カテゴリ
- ブランド
- userが自由に書く
- 検索キーワード
- 表記間違いや省略した単語が結構ある
- インデックス方式
- unigaram
- 再現率高いが適合率が低い
- 利点
- ワンピで検索してもワンピースがでる
- あてはあるものができる限り出力される
- NG
- ファーでローファーがひっかかる
- unigaram
- unigram->kurokojiへ
- 移行OK要件
- ヒット件数が大幅に減らなければOK
- ヒットしてもダメなモノが消えるのはOK
- unigramでとれなくなったものもある
- 本番DBでUnigramとkuromoji+辞書で違いを調べてみた
- 問題点
- ふりがなのついたファッションデータがなかった
- 自社でもってるブランドmasterを追加
- 自社の検索ログ+neologdで分解した
- uniGRAMで出来た部分を優先して作った
- ふりがなのついたファッションデータがなかった
- 問題点
- 上位概念と下位概念を整理したい
- サンダルという名前がつく履き物とで香料もあるので、それはわけたい
- 検索数が多いモノは類義語辞書で対応
- ブランドは揺れの登録はしない
- キーワードサジェスト機能を使う
- 課題
- 辞書の作り方の情報がない
- 試行錯誤・断片的な情報しかない。。。
- できるだけ検索の利便性を高くして、作業コストが低い方法vs 資源としての正しさ
- なにが正しいのか
- 検索のための辞書じゃなくて、サービスが言語知見を知りたい
質問
- どうやって再現率を確認したか
- 数千件のクエリを投げて確認をした
- フィードバックがあったか?
- わからない。まぜらフリマアプリだから..
- 辞書のメンテナンスはどうやってるか?
- 定期的に検索ヒットの0件のキーワードを足して対応する
- はやりもんがあれば足す
- 週1〜2回
- 追加した辞書で特に効果的だったと思ったものは何か
- 今まで2回検索しないといけなかったようなものがなくなった
知識を紡ぐための言語処理と、そのための言語資源(@conditional)
www.slideshare.net
- 東北大学自然言語処理研究室
- 年度毎人が増えている
- 自然言語処理の解析から応用をやってる
- 東北大が「行間を読む」言語解析
- DL
- 画像 × 言語
- 画像がなにをしているかとれるようにする
- 言語理解には「知識」が不可欠
- 田端酒造の「羅生門」は何賞をとったのか?
- 知識がないと正しい回答がつくれない
- 田端酒造の「羅生門」は何賞をとったのか?
- 知識を紡ぐ言語処理
- Wikipedia Freebaseをつかって言語を自動処理
- 言語データから知識を獲得
- Wikipedia Freebaseをつかって言語を自動処理
- 言語情報のグランディング
- 知識を用いた意味づけ
- 場所参照表現のグランディング + 一般的固有表現のグランディング
- そこから意味を手に入れる
- エンティティリンキング
- 日本語wikificationコーパス
- 場所参照表現タグ付きコーパス
- 武家屋敷など
- 拡張固有表現+Wikipediaデータ
- ありとあるゆるデータを200クラスに階層化した辞書
- カテゴリ階層例: 「製品 > 主義方式 > 競技」
- LanguageCraft(関根先生の会社?)から有料(?)でゲットdきる
- 200万記事に対してDLでラベルをつけた
- Json対応済み!
- 精度は90%くらい
- 日本語 wikipedia エンティティ ベクトル
- word2vec は、単語をベクトル化
- wikipdiaのエントリをベクトル化(周辺の文脈も入れる)
- 類似したエントリを探せる、アナロジーを探すのにも使える
- 場所参照表現のグランディング + 一般的固有表現のグランディング
- 知識を用いた意味づけ
- NElogdファミリーへの期待
- 現状:継続的にメンテナンスされる言語資源はない
- 毎月更新されてすごい!
- 現状:研究者/エンジニアは「手法」によりすぎる傾向がある
- リソースも大事
- 現状:「言語リソースは客観性が重要」「リソース制定過程も再現性が必要」
- 個人の主観でリソースをつかってもいいんじゃん!
- リソースの配布元
NEologd が2016年末までにやること(@overlast)
- 渋谷ヒカリエ
- 形態素区切り結果
- もう1回UniDicで解析し直す
mecab-ipadic-neologd新機能
定量的な評価やっているの?
- 文書分類タスクで確認
- yahoo newsの大小カテゴリ分類
- 結果
- IPA辞書、UniDicのベスト結果を上回る
- 文書分類では副作用はない
- 文書分類タスクで確認
mecab-ipadic-neologd(みんなでできるようにすること)
- 動詞エントリ拡張
- 略語エントリの追加
- 新語の追加
最後に
実は弊社の製品であるSedue ExtractorにもNEologdは使われております。 LTもしたかったのですが、資料の準備等できなくて、、、 次回はなにか話せたらなと....