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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

1回答

2088閲覧

mecabの単語辞書追加をしベクトル表現を利用したい。(2020年Google Colab版)

dendenmushi

総合スコア98

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

1クリップ

投稿2020/11/15 05:33

編集2020/11/15 22:22

前提・実現したいこと

mecabをGoogle Colabにて使用しています。
通常辞書に加えてNeologd辞書を追加中です。
新しい単語を追加したいです。

参考サイト

Google Colab Mecab

辞書導入

前提状態

①追加辞書の用意

Google Colab

linux

1!apt install aptitude 2 3!aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y 4 5!pip install mecab-python3==0.7 6 7!git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git 8 9cd mecab-ipadic-neologd/ 10 11!sudo ./bin/install-mecab-ipadic-neologd -n -a 12 13# 追加辞書の場所 14!echo `mecab-config --dicdir`"/mecab-ipadic-neologd" 15

python

1import MeCab 2wakati = MeCab.Tagger('-Owakati') #分かち書き 3neo_wakati = MeCab.Tagger('-Owakati -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd') #追加辞書を適用 4word = input("分かち書き:") 5wakati = wakati.parse(word).strip() 6neo_wakati = neo_wakati.parse(word).strip() 7 8print('通常辞書:' + wakati) 9print('追加辞書:' + neo_wakati)

このpythonコードによって辞書別に結果が違うことを確認しました。

例)
通常辞書⇒パウエル 国務長官
Neologd辞書⇒パウエル国務長官
イメージ説明
つまり、追加辞書側Neologdにはパウエル国務長官というワードがあるため全体ワードとして認識している。

②Gensimのword2vecモデルの準備

word2vec データ参考サイト

Gensimのモデルを取得
ここから一度開発PCのwindowsにダウンロードしzip解凍してから以下をGoogle ColabにDrag&Drop

word2vec.gensim.model
word2vec.gensim.model.syn1neg.npy
word2vec.gensim.model.wv.syn0.npy

linux

1!git submodule init 2!git submodule update 3cd content/

python

1from gensim.models.word2vec import Word2Vec 2 3model_path = 'word2vec.gensim.model' 4model = Word2Vec.load(model_path) 5 6model.wv['お花見大好き人間']

現状

イメージ説明

理想

Neologd辞書でお花見大好き人間が「お花見 大好き 人間」
単語登録をすると「お花見大好き人間」として表示になって欲しい。
結果的にはそれを単語ベクトルとして使用していきたい。

新しい単語の登録方法

①CSVの作成
イメージ説明
utf-8で保存

②Google ColabにDrag&Drop
イメージ説明

③CSVのコンパイル
参考サイトは以下。
方法1:Mecabの辞書をカスタマイズする

イメージ説明

発生している問題・エラーメッセージ

no job control

他に試した方法として、そもそも初めのコンパイル時にCSVの中に入れてしまう方法を行ってみようと思いました。

方法2:
mecab-ipadic-neologdのbinの中にinstall-mecab-ipadic-neologdがあり、そのファイルにreadコマンドで実行中にエンターキーを促し一定期間実行が止まるようにし(下画像の赤数字1と赤数字2)、buidフォルダ配下のに追加ワードを書いたCSVを配置(下の画像の赤数字3)
イメージ説明

Drag&Drop後のcsvの様子。(下の画像)
イメージ説明

結果、
イメージ説明

登録されていませんでした。
CSVをbuild配下のmecab-ipadic-2.7.0-20070801-neologd-20200910に置くことで、一緒にコンパイル処理をしてくれるとサイトで記載ありまして実行してみましたが。以下の通りでした。
イメージ説明

個別に追加する方法や、コンパイル時にCSVファイルを混入させる方法などいくつか試しましたが、どれもうまくいきませんでした。知見ある方どなたかアドバイス頂けないでしょうか。よろしくお願い致します。

補足情報(FW/ツールのバージョンなど)

開発PCはwinodws10
Google colabはLinux.

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

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

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

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

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

guest

回答1

0

③CSVのコンパイル [28]のところ,

!¥% /usr/lib/mecab/mecab-dict-index ¥ ...

という記述がありますが, おそらく

!/usr/lib/mecab/mecab-dict-index ¥ ...

という感じで¥%を消すような変更をするといいと思います。

手元で,次のようなコマンドを実行すると同じようなエラーが
返ってきたので,おそらくそこがうまくいかない原因かと思います。

$ ¥% /usr/lib/mecab/mecab-dict-index bash: fg: %: そのようなジョブはありません

投稿2022/10/29 08:21

ujimushi_sradjp

総合スコア2103

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問