Генерация индексов для проекта lindocs.
Может кому покажется интересным.
В качестве индексов в базе данных ссылок в проект lindocs планируется
использовать простые английские слова, аббревиатуры, общепринятые
сокращения. Поэтому, скорее всего, у составителей может возникнуть
проблема с слишком творческим подходом к этому вопросу.
Одним из способов предотвратить это - заранее создать достаточно большую
коллекцию индексных слов. Например, ее можно извлечь из статей
опубликованных на сайте www.opennet.ru, т.к. там материалы уже
проиндексированы (индексы прямо указаны после ключевого слова
"Keywords:" для txt-вариантов статей).
Эти материалы у меня уже скачаны, тогда, объединив сортированную и
несортированную части проекта lindocs, можно написать несложный конвейер
для командной строки. Этот конвейер не только извлекает индексы, но и
выводит некоторую статистику частоты используемых ключевых слов.
$ for i in `find . -name "*.txt"`; do head -n 1 $i; done | \
awk '{ for(i=2;i<=NF;i++) { print $i } }' | \
sort | uniq -c | \
sed 's/^ \{1,\}//g' | \
awk '{ print substr("000",1,3-length($1))$1" "$2 }' | \
sort
Результаты будут примерно такими:
028 php
029 auth
029 database
029 install
029 patch
030 web
032 apache
032 win
034 mysql
044 perl
066 mail
100 freebsd
144 linux
В дальнейшем результаты конвейера можно будет легко вставить в SQLite
базу данных.