私はJuliaのtext mining moduleで実験しています。TextMiningのコーパスは、明示的な親タイプの変換が必要です
私は変換エラーを得たでCorpus
機能を養う、すなわち(IがパイプラインコマンドにLazy
可能パッケージを使用しています注意してください)
using Lazy, TextMining, DataArrays
@>> @data(["hello","bro"]) map(StringDocument) Corpus
->LoadError: MethodError: `convert` has no method matching convert(::Type{TextAnalysis.Corpus}, ::DataArrays.DataArray{TextAnalysis.StringDocument,1})
This may have arisen from a call to the constructor TextAnalysis.Corpus(...),
since type constructors fall back to convert methods.WARNING: Error showing method candidates, aborted
私は、コードのこの部分を持っているconvert(Vector{GenericDocument})
を適用する必要があります作品:
@>> @data(["hello","bro"]) map(StringDocument) convert(Vector{GenericDocument}) Corpus
ここCorpus機能があります:
type Corpus
documents::Vector{GenericDocument}
total_terms::Int
lexicon::Dict{Compat.UTF8String, Int}
inverse_index::Dict{Compat.UTF8String, Vector{Int}}
h::TextHashFunction
end
function Corpus(docs::Vector{GenericDocument})
Corpus(
docs,
0,
Dict{Compat.UTF8String, Int}(),
Dict{Compat.UTF8String, Vector{Int}}(),
TextHashFunction()
)
end
Corpus(docs::Vector{Any}) = Corpus(convert(Array{GenericDocument,1}, docs))
私はここで何が欠けていますか?
あなたはパイプラインパッケージを使用しているように見えます( Lazy.jl?)あなたの質問に集中するために、パイプライン構文を削除してください。または、少なくとも「Lazyを使用する」(またはこれまでのモジュールを含む)場合は、コードがコンパイルされます。 –