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

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

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

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

Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

Q&A

解決済

1回答

594閲覧

Awabi.jlでユーザー辞書関連とみられるエラーが発生する

ujimushi_sradjp

総合スコア2091

Mecab

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

Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

0グッド

0クリップ

投稿2022/11/18 12:26

Mecabの辞書を使った形態素解析モジュールAwabi.jlを追加して,試してみたところ次のようなエラーが出ました。どのように対処すればよいでしょうか?

(@v1.8) pkg> add Awabi Updating registry at `~/.julia/registries/General.toml` Resolving package versions... Updating `~/.julia/environments/v1.8/Project.toml` [b89ecf66] + Awabi v0.1.2 Updating `~/.julia/environments/v1.8/Manifest.toml` [b89ecf66] + Awabi v0.1.2 Precompiling project... 1 dependency successfully precompiled in 1 seconds. 465 already precompiled. julia> using Awabi julia> tokenize(Tokenizer(), "すもももももももものうち") ERROR: UndefVarError: user_dic not defined Stacktrace: [1] build_lattice(tokenizer::Tokenizer, sentence::String) @ Awabi ~/.julia/packages/Awabi/NqVsn/src/tokenizer.jl:71 [2] tokenize(tokenizer::Tokenizer, s::String) @ Awabi ~/.julia/packages/Awabi/NqVsn/src/tokenizer.jl:110 [3] top-level scope @ REPL[6]:1
  • Julia: 1.8.2
  • Awabi.jl: 0.1.2

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

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

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

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

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

guest

回答1

0

自己解決

どうやらuserdicの処理に不具合があったようです。

(@v1.8) pkg> rm Awabi Updating `~/.julia/environments/v1.8/Project.toml` [b89ecf66] - Awabi v0.1.2 Updating `~/.julia/environments/v1.8/Manifest.toml` [b89ecf66] - Awabi v0.1.2 (@v1.8) pkg> dev Awabi Resolving package versions... Updating `~/.julia/environments/v1.8/Project.toml` [b89ecf66] + Awabi v0.1.2 `~/.julia/dev/Awabi` Updating `~/.julia/environments/v1.8/Manifest.toml` [b89ecf66] + Awabi v0.1.2 `~/.julia/dev/Awabi` (@v1.8) pkg>

として,

diff

1diff --git a/src/tokenizer.jl b/src/tokenizer.jl 2index a1d59c7..cb198cc 100644 3--- a/src/tokenizer.jl 4+++ b/src/tokenizer.jl 5@@ -68,7 +68,7 @@ function build_lattice(tokenizer::Tokenizer, sentence::String)::Lattice 6 7 # user_dic 8 if tokenizer.user_dic != nothing 9- user_entries = lookup(user_dic, s[(pos+1):length(s)]) 10+ user_entries = lookup(tokenizer.user_dic, s[(pos+1):length(s)]) 11 if length(user_entries) > 0 12 for e in user_entries 13 add!(lattice, new_node(e), tokenizer.matrix)

のような修正をしてJuliaを一度終了させ,
次のように実行するとうまくいくようでした。

julia> using Awabi [ Info: Precompiling Awabi [b89ecf66-93e0-42cf-a85d-3fd691c1774b] julia> tokenize(Tokenizer(), "すもももももももものうち") 7-element Vector{Tuple{String, String}}: ("すもも", "名詞,一般,*,*,*,*,すもも,スモモ,スモモ") ("も", "助詞,係助詞,*,*,*,*,も,モ,モ") ("もも", "名詞,一般,*,*,*,*,もも,モモ,モモ") ("も", "助詞,係助詞,*,*,*,*,も,モ,モ") ("もも", "名詞,一般,*,*,*,*,もも,モモ,モモ") ("の", "助詞,連体化,*,*,*,*,の,ノ,ノ") ("うち", "名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ")

githubのイシューとして投稿したところ,既にマスターブランチは修正されています。

次のリリースでこの修正が反映されると思いますがすぐに利用したい時は,パッケージモードで
dev Awabiを実行することで修正版が利用できるようになっているはずです。

投稿2022/11/18 12:28

ujimushi_sradjp

総合スコア2091

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問