スペルチェックやOCRなどの目的で、pdf形式の科学論文のコレクションに基づいてカスタム(科学)単語リストを作成したいと思います。を使用すると、pdftotext
私の科学分野に必要な単語を含むテキストファイルを簡単に作成できます。しかし、ファイルは汚染されます。
- 非科学関連語(一般辞書にも含まれる)
- 不適切な数式変換による単語(特殊文字などを含む単語を含む)
個々の単語の長さが最小で、特殊文字は含まれておらず、リストに複数回表示する必要があり、後者を削除したいと思います。第二に、第二の単語リストと比較して電子を削除したいと思います。私の質問:
これはあなたにとって良い計画のように聞こえますか?これを行うための既存のツールはありますか?あなたは何をしますか?
ベストアンサー1
5回以上見つかったが、現在のディレクトリのPDFファイルにある/usr/share/dict/wordsにない4文字以上の単語を選択します。
find . -name '*.pdf' -exec pdftotext {} - \; |
tr -cs '[:alpha:]' '[\n*]' |
tr '[:upper:]' '[:lower:]' |
grep -E '.{4}' |
sort |
uniq -c |
awk '$1 > 4 {print $2}' |
comm -23 - <(tr '[:upper:]' '[:lower:]' < /usr/share/dict/words|sort -u)
ksh
プロセス置換(、zsh
または)をサポートするシェルが必要ですbash
。
とにかく使用したい場合は、次のサイトperl
ですべての作業を実行できますperl
。
find . -name '*.pdf' -exec pdftotext {} - \; |
perl '-Mopen ":locale"' -nle '
s/^\S+//;s/\S+$//;y/ \t/ /s;
next unless length > 40;
$w{lc$_}++ for /[[:alpha:]]{4,}/g;
END{open W,"</usr/share/dict/words";
while(<W>){chomp;delete $w{lc$_}};
print for grep {$w{$_}>4} keys %w}'