2つの、私が使用したいパッケージがあります:CorpusLoaders.jl、およびWordNet.jl2つのモジュールの両方に同じ名前をエクスポート
- CorpusLoaders.SemCor輸出
sensekey(::SenseTaggedWord)
- WordNetの輸出
sensekey(::DB, ::Synset, ::Lemma)
は私がしたいです両方の方法を使用してください。項目のいくつかの混合リスト用など
:mixedlist::Vector{Union{Tuple{SenseTaggedWord},Tuple{DB, Synset,Lemma}}
。 リストの項目は、SenseTaggedWord
の1タプルとDB
、Synset
、およびLemma
の3つのタプルの混合物です。
for item in mixedlist
println(sensekey(item...)
end
が有効です。 この例は少し面白いです。 しかし、うまくいけば、それは一般的な場合の問題を説明するのに役立ちます。
手動の両方をインポートWARNING: both WordNet and Semcor export "sensekey"; uses of it in module Main must be qualified.
で両方の結果をもたらすことusing CorpusLoaders.SemCor, WordNet
しようとしている:WARNING: ignoring conflicting import of Semcor.sensekey into Main
でimport CorpusLoaders.SemCor.sensekey; import WordNet.sensekey
結果をどのように行うことができますか?私はそれらを両方とも望んでおり、複数のディスパッチのために実際には衝突しません。
CorpusLoaders.jlは私が私のCorpusLoaders.jlがWordNet.jlに依存させる可能性があるため、私は、いくつかのより多くのオプションを持っているん書いていますパッケージであることを考えます。 私はその後、よりやったのなら、私はCorpusLoaders.jl
import WordNet
function WordNet.sensekey(s::SenseTaggedWord)...
に言うことができる、それはそれらの両方の仕事になるだろう。 しかし、WordNetにはCorpusLoadersの依存関係が必要です。
そして、パッケージの作成者ではなく、パッケージの消費者の問題を解決する方法を知りたいと思います。
nah、私の答えは、とにかくユーザーの場合についてです。幸運なことに、FengYangの答えよりも細かい(または* lot *:p)詳細が必要な同じ質問をした人は、次に私のものにぶつかります。Dここでコメントを答えに移して、hehehから取り除きたいと思っています。上記のコメントのトレントを削除します:p 編集/明解に時間を割いてくれてありがとう! –