2017-11-20 5 views
0

Rには自分のトークナイザを使ってテキストをベクターに変換できる方法はありますか?上記のコード
vectorizer = TfidfVectorizer(tokenizer=getTokens) X = vectorizer.fit_transform(corpus)
PythonとgetTokensで書かれている私のカスタムのトークナイザは、とにかくです私はR. で同じことを行うことができるように、私はR library(text2vec)でライブラリもあるように言及したいと思いますいくつかありますが、私は取得していないRカスタムトークンを適用する方法 トークン=単語テキストをベクトルに変換するRでカスタムトークナイザを使用しますか?

答えて

1

「トークンはトークンにテキストを分割するプロセスです。トークンを使って言葉を参照すると仮定します。これは例えばRを用いて行うことができる。低レベルでstrsplit。例:

> example <- "This is an example. This is an example" 
> unlist(strsplit(example, split = " ")) 
[1] "This"  "is"  "an"  "example." "This"  "is"  "an"  "example" 

文字列が表示されているように、文字列は自動的に複数の文字列を含むベクターに変換されます。今は単純なスペースで分割しても特殊なケースはうまく処理されません。だから、より良い考慮すべき一つ以上の英数字以外の文字の正規表現を使用して:

> unlist(strsplit(example, split = "[^[:alnum:]]+")) 
[1] "This" "is"  "an"  "example" "This" "is"  "an"  "example" 

あなたはalnum代わりに空白別名"\\s+"を使用することができます句読点を保持したい場合。

トークンを単語(例:文章または文字)と異なるものにしたい場合は、次のようにします。あなたは特別な場合を扱うことができるquantedaのtokenizerを使うことができます。ピリオドは新しい文章を示しません。

> example <- "This is an example. This is an example Dr. Knowitall" 
> quanteda::tokens(example, what = "sentence") 
tokens from 1 document. 
text1 : 
[1] "This is an example."    "This is an example Dr. Knowitall" 

独自のトークナイザが付属するその他のパッケージがいくつかあります。例えば、パッケージトークナイザは、それを提供します。

+0

基本的には、UR1検出でこのことを使用したいと思っています。ベクター形式のUrlを作成してスコアを予測しなければなりません。また、Rで同じ機能を作成してください。大助け。@ jonGrub –

+0

あなたの質問にこれを追加し、トークン化したいいくつかのURLの例を挙げてください。あなたが見ることができるように、それは主に分割オプションに書き込むものに依存します。例えば、URLがコンマで区切られている場合、これを関数に入れることができます。 – JonGrub

+0

githubのリンク:https://github.com/keshavm021/Using-Machine-Learning-in-R-Detecting-Malicious-Urls/blob/master/keshav.Rあなたは何が起こっているのか理解しています。大いに助けてください。@ jongrub –

関連する問題