2017-07-27 3 views
0

私は、手作りのアルゴリズムを使ってデータセットからマルウェア名を抽出しようと考えていました。結果はそれほど有望ではなかった。私は出力として持っていたいと思い何javaとnlpを使用して情報(マルウェア名)とフィルタリングを行います。

torrentlocker payment site 
win32/somoto.e potentially unwanted 
financial services;malicious sources/malnets;personal sites 
tv/video streams;piracy/copyright concerns;entertainment;malicious  sources/malnets 
locky;malware;dark;stealing;infected 

がある:私は仕事かもしれないと思うのアプローチが意味を持つ単語を抽出することで、一般的に

torrentlocker payment site -> torrentlocker 
win32/somoto.e potentially unwanted -> win32/somoto.e 
financial services;malicious sources/malnets;personal sites -> null 
tv/video streams;piracy/copyright concerns;entertainment;malicious sources/malnets -> null 
locky;malware;dark;stealing;infected -> locky 

私のデータセットは、このようになります(著作権、支払いサイト、不要...)。たぶん、すべての単語を意味のあるものにし、それを自分のデータと比較する簡単な方法があります(オンライン辞書をスクラップするよりも優れています)。私はNLP(自然言語処理)がそれを行う方法であることを見出した。これを行うためのよりよい方法があれば、私はいくつかの推奨事項を持っていたいと思います。特に、Javaでの作業が好きです。

答えて

1

説明していることは、名前付きエンティティ認識(NER)と呼ばれています。 NERには、スタンフォードNLPのNERシステム(https://nlp.stanford.edu/software/CRF-NER.html)のようないくつかのオープンソースライブラリがあります。それもJavaのすべてです。

相当に大きなトレーニングセットをまとめることができれば、スタンフォードのNER実装を使用してモデルをトレーニングすることができます。

+0

@devrj詳細情報が必要な場合はお知らせください。 – langkilde

+0

ありがとうございます、私はこれを試してみます – DevRj

+0

私は私の質問で与えた例に基づいて少し精巧にできる場合は、私は好きです – DevRj

関連する問題