-
Notifications
You must be signed in to change notification settings - Fork 5
Migration Guide v0.7
(English follows)
v0.6からv0.7までで, いくつかの破壊的変更が行われています.
-
WordDictionaryConfig
を削除しました(DefaultFetcher
に名前を変更し,機能も大きく変わっています) -
DictionaryStore
トレイトのserlializer_hint
関数を削除しました -
JPreprocess
に型変数F
を追加しました - 非推奨となっていた
JPreprocess::new
関数を削除しました
- jpcommonの出力インターフェースを
Vec<String>
からVec<jlabel::Label>
に変更しました
今回,JPreprocess
に型変数F
が追加されています.
F
は,DictionaryFetcher
を実装する構造体を受け付けます.
v0.7に移行するには,F
にDefaultFetcher
を指定してください.
struct TextProcessor{
- jpreprocess: jpreprocess::JPreprocess,
+ jpreprocess: jpreprocess::JPreprocess<jpreprocess::DefaultFetcher>,
// ...
}
v0.6以前JPreprocess
で使えるDictionaryFetcher
はWordDictionaryConfig
だったため,
F
に指定するのはDefaultFetcher
でよいはずです.
jpcommon
の出力インターフェースがVec<String>
からVec<jlabel::Label>
に変更されています.
JPreprocess::make_label
,JPreprocess::extract_fullcontext
,njdnodes_to_features
が影響を受けます.
上流でjlabel
を使わない場合は,次のようなコードで対応してください.
let fullcontext_label = jpreprocess.extract_fullcontext(&text)?;
let string_labels: Vec<_> = fullcontext_label.iter().map(ToString::to_string).collect();
From v0.6 to v0.7, several breaking changes have been made.
-
WordDictionaryConfig
was removed (in other words: renamed toDefaultFetcher
and heavily modified) -
DictionaryStore
no longer hasserlializer_hint
function -
JPreprocess
struct requires type parameterF
-
JPreprocess
's deprecatednew
function is finally removed
- Changed jpcommon output interface from
Vec<String>
toVec<jlabel::Label>
.
The type variable F
has been added to JPreprocess
.
Faccepts a struct that implements
DictionaryFetcher`.
To migrate to v0.7, specify DefaultFetcher
for F
.
struct TextProcessor{
- jpreprocess: jpreprocess::JPreprocess,
+ jpreprocess: jpreprocess::JPreprocess<jpreprocess::DefaultFetcher>,
// ...
}
Prior to v0.6, the DictionaryFetcher
available for use with JPreprocess
was WordDictionaryConfig
, so DefaultFetcher
should simply be the one specified for F
.
The output interface of jpcommon
is changed from Vec<String>
to Vec<jlabel::Label>
.
JPreprocess::make_label
, JPreprocess::extract_fullcontext
and njdnodes_to_features
are affected.
If you do not use jlabel
upstream, use the following code.
let fullcontext_label = jpreprocess.extract_fullcontext(&text)?;
let string_labels: Vec<_> = fullcontext_label.iter().map(ToString::to_string).collect();