DICT 형식으로 사전에서 단어 목록 가져오기

DICT 형식으로 사전에서 단어 목록 가져오기

연구/참조 목적으로 라틴어 단어 목록을 원합니다. (좋다 /usr/share/dict/words)

해당 단어 목록( )은 없는 것 같은데 apt-file search /usr/share/dict | sort | uniq | grep latin, DICT 영-라틴어 사전: 은 있습니다 dict-freedict-eng-lat.

단어 목록을 쉽게 얻을 수 있는 방법이 있나요?

빠른 수동 구문 분석을 시도했지만 .dz약간 sed의 구문 분석이 필요할 만큼 형식이 복잡해 보입니다. dictunformat명령을 시도했지만 생성됩니다.c5 데이터베이스바이너리 형식인 것 같습니다. 그러한 파일과 상호 작용하는 도구를 찾을 수 없습니다.

답변1

zcat /usr/share/dictd/freedict-eng-lat.dict.dz | perl -e 'my %dict; $start=0; $/="\n"; while (<>) { next if $_ =~ m/(\/|\x90)/; chomp; $_ =~ s/[0-9\. ]*//g; $start = 1 if $_ eq 'abecedarium'; next if $start==0; @words=split(/\;/,$_); foreach my $word (@words) { $dict{$word}=1;} }; $,="\n"; print sort keys %dict;'

파일의 압축을 풀려면 다음을 포함하는 모든 영어 줄을 건너뛰십시오./발음하다/, 이상한 DLE 문자가 있는 줄을 건너뛰고, 첫 번째 실제 단어에 도달할 때까지 모든 헤더 줄을 건너뜁니다."베이스", 숫자, 점, 공백을 제거하고,";"각 단어를 해시에 추가하여 고유한 항목을 얻습니다. 마지막으로 $로 구분된 모든 단어를 인쇄하고 개행 문자로 설정합니다.\N

예제 출력:

ager
agere
agna
agnellina
agnina

답변2

내 기억이 정확하다면 .dz이것은 필요한 블록만 압축할 수 있는 gzip의 변형입니다. 노력하다:

zcat dict-freedict-eng-lat.dz

대부분의 ".dz"는 사람이 더 읽기 쉬운 형식(TEI의 경우)에서 freedict-tools를 사용하여 생성됩니다.

고쳐 쓰다:(나는 해킹된 솔루션을 좋아하지만) 이제 "덜 해킹적인" 방법:

1) 라틴어를 원하시면 freedict Lat-Eng(역사전)의 소스를 얻으세요:

wget "https://sourceforge.net/projects/freedict/files/Latin%20-%20English/0.1.1/freedict-lat-eng-0.1.1.src.tar.bz2"

2) 압축을 푼다:

tar -xvjf freedict-lat-eng-0.1.1.src.tar.bz2

그리고 소스 작업을 즐기십시오…

3) XML-TEI 소스(lat-eng/lat-eng.tei)에서 라틴어 항목(orth xml 태그)을 가져옵니다.

xidel -e "//orth" lat-eng/lat-eng.tei

마지막 제안: 라틴어-독일어 사전을 사용하세요(더 완전함)

https://sourceforge.net/projects/freedict/files/Latin%20-%20German/0.4/freedict-lat-deu-0.4.src.tar.bz2
tar ...
xidel -e //orth lat-deu/lat-deu.tei |  sort -u | wc        (9730)

답변3

나는 Aspell 사전을 단어 목록으로 덤프하고 변환한 다음 검색 가능한 MySQL/MariaDB 데이터베이스로 변환하는 방법에 대한 기사를 썼습니다:

https://www.joe0.com/2018/02/13/how-to-dump-and-convert-aspell-dictionary-to-wordlist-or-searchable-mysql-mariadb-database/

관련 정보