LoginSignup
1
1

More than 5 years have passed since last update.

2017年秋季セキュリティスペシャリスト 午前2に出てきた単語の頻度を調べてみた

Last updated at Posted at 2017-12-29

始めに

JavaでPDFファイルをOCR処理してみたを元に、セキュリティスペシャリスト 午前2の頻出単語を分析しました

参照ページ

解析用のソース

JapaneseAnalyser.java
package jpn;

import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;

import org.atilika.kuromoji.Token;
import org.atilika.kuromoji.Tokenizer;



public class JapaneseAnalyser {
    public static void main(String[] args) throws Exception{
        //parse_1.txtにセキュリティスペシャリスト 午前2の問題用紙をOCR読み取りした結果が格納されている
        String input = Files.lines(Paths.get("parse_1.txt"), Charset.forName("MS932"))
        .reduce((s,v)->s+v.replaceAll("\\r\\n", "").trim()).get();
        analysis(input);
    }   
    public static void analysis(String s){
        Tokenizer tokenizer = Tokenizer.builder().build();
        List<Token> tokens = tokenizer.tokenize(s);
        tokens
            .stream()
            .filter(a ->(a.getPartOfSpeech().indexOf("名詞")>=0))
            .map(e -> e.getSurfaceForm())
            .sorted()
            .collect(
                    Collectors.groupingBy(b->b,
                            Collectors.summingInt(b->1))
                    )
            .forEach((m1,m2)->System.out.println(String.format(" 出現頻度 %d    出現単語 : %s",m2,m1)));
    }
}

解析結果

自分のブログに載せたよ

感想

  • 相変わらず、DNSに関する問題が多い。セキュリティの穴としてよく狙われるから?
  • 機械学習に関する語句が出ているのが目新しい。これから情報処理技術者試験を勉強する人にとってはAIの分野も薄くでもいいから勉強する必要があるかもね
  • JavaのStreamAPIがあればちょっとした日本語解析をするのにpython使う必要ないですね。というか、pythonは2系と3系で使えるライブラリがバラバラで、正直イライラする。pythonが使いやすいって言っている人、どうやって開発しているんだろう・・・。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1