빠른 코퍼스 검색 엔진은 원래 서면 타타르 언어의 코퍼스를 위해 만들어졌습니다.
여기서 시도해 볼 수 있습니다.
소스 코드는 https://github.com/mansayk/fastmorph에서 사용할 수 있습니다.
Query:
Word 1: китап
Number of occurences: 32209
Query processing time: 0,4 sec.
Query:
Word 1 (case sensitive, distance to the next word up to 3 words): Китап
Word 2 (if in brackets, then it is lemma): (бир)
Number of occurences: 15
Query processing time: 0,4 sec.
Quite heavy query:
Word 1 (word begins with "б" letter, distance range to the next word is from 1 to 10): б*
Word 2 (pronoun, word ends with "ң", distance range to the next word is from 1 to 10): <prn>*ң
Word 3 (lemma "кил", word ends with "р"): (кил)*р
Number of occurences: 135210
Query processing time: 0,8 sec.
Very heavy query:
Word 1 (word ends with "ы", distance range to the next word is from 1 to 100): *ы
Word 2 (word ends with "а", distance range to the next word is from 1 to 100): *а
Word 3 (word ends with "м", distance range to the next word is from 1 to 100): *м
Word 4 (word ends with "с", distance range to the next word is from 1 to 100): *с
Word 5 (word ends with "ь", distance range to the next word is from 1 to 100): *ь
Word 6 (word ends with "е"): *е
Number of occurences: 135210
Query processing time: 1,4 sec.
여기서 시도해 볼 수 있습니다. 코퍼스 매뉴얼에는 다양한 검색 예제가 있습니다. 프로젝트에서 Fastmorph 사용에 대한 궁금한 점이 있으면 [email protected]으로 문의하십시오.
또한이 검색 엔진이 사용되는 위치를 알려 주시며, 신경 쓰지 않으면 해당 프로젝트에 대한 링크를 여기에 게시 할 것입니다.
이 소프트웨어는 GNU General Public License v3.0에 따라 배포됩니다.
검색 쿼리 :
Schematical view: {<adj>}(0) 1-5 {ке*<n>}(1) 1-1 {(кил)}(0) 1-1 {}(0) 1-1 {}(0) 1-1 {}(0)
Detailed:
Word 1 (distance range to the next word is from 1 to 5, adjective): <adj>
Word 2 (case sensitive, begins with "ке", noun): ке*<n>
Word 3: (lemma "кил"):(кил)
Word 4:
Word 5:
Word 6:
{
"word": [
"",
"",
"",
"",
"",
""
],
"lemma": [
"",
"",
"кил",
"",
"",
""
],
"tags": [
"<adj>",
"<n>",
"",
"",
"",
""
],
"wildmatch": [
"",
"ке*",
"",
"",
"",
""
],
"case": [
0,
1,
0,
0,
0,
0
],
"dist_from": [
1,
1,
1,
1,
1
],
"dist_to": [
5,
1,
1,
1,
1
],
"return": 100,
"last_pos": "0"
}
"반환" - 반환 할 최대 문장의 양.
첫 번째 쿼리의 경우 "last_pos" - "0"또는 다음 문자 목록을 얻으려면이 문자열을 되돌리십시오.
경고! FastMorph에 전달하기 전에 입력 데이터를 정규화하고 확인해야합니다.
{
"example": [
{
"id": 15853,
"source": ""2013 Универсиадасы блогы" (web-сайт)",
"source_type": "kazan2013.ru",
"sentence": "Универсиада кебек зур проектның бер өлеше булу өчен, Казанга Россиянең төрле
төбәкләреннән һәм Дөньяның
<span id='found_word_0' class='found_word' title='(төрле) <adj>'>төрле</span>
илләреннән бик күп
<span id='found_word_1' class='found_word' title='(кеше) <n>,<nom>,<sg>'>кеше</span>
<span id='found_word_2' class='found_word' title='(кил) <ifi>,<iv>,<p3>,<sg>,<v>'>килде</span>."
},
{
"id": -1
}
],
"last_pos": "892447x39311905x75980782x114356633",
"found_all": 1359
}
보시다시피, 검색 쿼리와 일치하는 각 단어는 다음 HTML 태그로 반환됩니다.
<span id='found_word_0' class='found_word' title='(LEMMA) <TAG1><TAG2>'>FOUND_WORD</span>
예를 들어 CSS를 사용하여 강조 표시 할 수 있습니다.
여기에서 테이블 예제를 찾을 수 있습니다.
mysql> select * from morph6_main_apertium 리미트 10;
| ID | 연합 | 문장 | 원천 |
|---|---|---|---|
| 0 | 1594501 | 1 | 1 |
| 1 | 761564 | 1 | 1 |
| 2 | 787834 | 1 | 1 |
| 3 | 1505641 | 1 | 1 |
| 4 | 420024 | 1 | 1 |
| 5 | 764201 | 1 | 1 |
| 6 | 1003674 | 1 | 1 |
| 7 | 1003851 | 1 | 1 |
| 8 | 764201 | 1 | 1 |
| 9 | 1057551 | 1 | 1 |
mysql> select * from morph6_united_apertium id> = 100 한계 10;
| ID | freq | Word_case | 단어 | 레마 | 태그 |
|---|---|---|---|---|---|
| 100 | 1 | 1000084 | 599888 | 429156 | 2 |
| 101 | 60 | 1000085 | 599890 | 429158 | 2 |
| 102 | 5 | 1000086 | 599891 | 429159 | 2 |
| 103 | 2 | 1000087 | 599892 | 429160 | 2 |
| 104 | 1 | 1000088 | 599893 | 429161 | 2 |
| 105 | 10 | 1000089 | 599894 | 429162 | 2 |
| 106 | 1 | 100008 | 164606 | 119768 | 2 |
| 107 | 1 | 1000090 | 599895 | 429163 | 2 |
| 108 | 5 | 1000091 | 599899 | 429167 | 2 |
| 109 | 1 | 10000092 | 599901 | 429169 | 2 |
mysql> select * from morph6_words_case_apertium id> 200000 제한 10;
| ID | freq | Word_case |
|---|---|---|
| 200001 | 4 | идарәсендәге |
| 2000002 | 1 | идарәсендәме |
| 200003 | 3 | идарәсене |
| 2000004 | 290 | идарәсенең |
| 200005 | 14 | идарәсенн 목표 |
| 200006 | 1 | идарәсеның |
| 2000007 | 79 | идарәсенә |
| 2000008 | 1 | идарәснең |
| 200009 | 1 | идарәсанең |
| 200010 | 1 | идарәханә |
mysql> select * from morph6_words_apertium id id> 100000 Limit 10;
| ID | freq | 단어 |
|---|---|---|
| 100001 | 975 | артистларны |
| 100002 | 7 | артистларны гына |
| 100003 | 74 | артистларны да |
| 100004 | 1 | артистларныкы |
| 100005 | 1 | артистларн혁 울림 |
| 100006 | 8 | артистларн다 ынннан |
| 100007 | 1 | артистларн 저 웨시 |
| 100008 | 1 | артистларн다이트 |
| 100009 | 1408 | артистларның |
| 10000 | 3 | артистларның гына |
mysql> select * from morph6_lemmas_apertium id id> 300000 Limit 10;
| ID | freq | 레마 |
|---|---|---|
| 300001 | 1 | ияр듈입니다 |
| 300002 | 130 | ияр듈 челәр |
| 300003 | 8 | иярвяручеләргә |
| 300004 | 2 | ияр듈 랜스 ләрдә |
| 300005 | 3 | ияр듈 랜스 랜스 рән |
| 300006 | 9 | ияр듈 челәре |
| 300007 | 2 | ияр듈 랜스 랜치 регез |
| 300008 | 2 | и яр듈 랜스 랜치 |
| 300009 | 1 | ияр듈 랜스 랜치 ренең |
| 300010 | 12 | ияр듈 랜스 랜치 |
mysql> select * from morph6_tags_apertium id> 11100 제한 10;
| ID | freq | 조합 |
|---|---|---|
| 11101 | 4 | <ant>, <dat>, <f>, <frm>, <np>, <px2sg> |
| 11102 | 17141 | <ant>, <dat>, <f>, <np> |
| 11103 | 387 | <ant>, <dat>, <f>, <np>, <pl> |
| 11104 | 1 | <ant>, <dat>, <f>, <np>, <pl>, <px1pl> |
| 11105 | 1 | <ant>, <dat>, <f>, <np>, <pl>, <px1sg> |
| 11106 | 12 | <ant>, <dat>, <f>, <np>, <pl>, <px3sp> |
| 11107 | 1 | <ant>, <dat>, <f>, <np>, <px> |
| 11108 | 40 | <ant>, <dat>, <f>, <np>, <px1pl> |
| 11109 | 101 | <ant>, <dat>, <f>, <np>, <px1sg> |
| 11110 | 41 | <ant>, <dat>, <f>, <np>, <px2sg> |
mysql> col1> 300 제한 3 소스에서 선택 * 선택;
| col1 | col2 | col3 |
|---|---|---|
| 301 | "Miras.belem.ru"(Web-са태) | Miras.belem.ru |
| 302 | аб 울у충야 алиш. курәелшр | 책 |
| 303 | 뇨 탭 хакимия 탈은 ayter җирле 자 ʏидарә органн 제공 갑격자 "рәсми 례"web-сатарстан "порталы (web-сайт) | Tatarstan.ru |
Apertium의 Tagger를 사용하여 말단에 형태 학적으로 주석을 달면 Python 스크립트를 사용하여 Apertium의 출력에서 테이블을 생성 할 수 있습니다.
이 변환기를 사용하려면 다음을 수행해야합니다.
cat bigfile.txt | apertium -n -d . tat-tagger | cg-proc dev/mansur.bin > bigfile_tagged.txt
여기서 Mansur.bin은 몇 가지 추가 규칙이있는 파일 일뿐입니다. 여기에서 찾을 수 있습니다.
결과적으로 주석이 달린 문장이 포함 된 파일을 가져와야합니다.
^Мин/Мин<prn><pers><p1><sg><nom>$ ^үземне/үз<prn><ref><px1sg><acc>$ ^белә/бел<v><tv><prc_impf>$ ^башлаганнан/башла<vaux><ger_past><abl>$ ^бирле/бирле<post>$ ^түбән/түбән<adj>$ ^очка/оч<n><sg><dat>$ – ^ерак/ерак<adj>$ ^бабакайларга/бабакай<n><pl><dat>$ ^төшәргә/төш<v><iv><inf>$ ^ярата/ярат<v><tv><pres><p3><sg>$ ^идем/и<cop><ifi><p1><sg>$^./.<sent>$
| 문장 ID | 소스 ID |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
| 8 | 1 |
| 9 | 1 |
| 10 | 1 |
그리고 스크립트와 같은 디렉토리에 배치하십시오.
3) 파이썬 스크립트를 이런 식으로 실행하십시오.
./tat-tagger_to_ntables_v6.24.py tatcorpus2.sentences.apertium.tagged.txt
코퍼스의 크기에 따라 시간이 많이 걸립니다.
4) 모든 것이 잘 진행되면 MySQL 데이터베이스로 가져와야하는 새 파일 목록을 가져와야합니다.
tatcorpus2.sentences.apertium.tagged.txt.lemmas.output.txt
tatcorpus2.sentences.apertium.tagged.txt.main.output.txt
tatcorpus2.sentences.apertium.tagged.txt.tags-uniq.output.txt.sorted.txt
tatcorpus2.sentences.apertium.tagged.txt.tags.output.txt
tatcorpus2.sentences.apertium.tagged.txt.united.output.txt
tatcorpus2.sentences.apertium.tagged.txt.words.output.txt
tatcorpus2.sentences.apertium.tagged.txt.words_case.output.txt
27.02.2017- Fastmorph Corpus 검색 엔진의 5 번째 버전이 출시되었습니다. 이제 메모리 (RAM)가 약 2,5 배 줄어 듭니다.
18.11.2016- Fastmorph Corpus Search Engine의 4 번째 버전이 출시되었습니다. 변경 목록 :
19.07.2016- 복잡한 형태 학적 검색 엔진 "Fastmorph"의 일부 개선 사항 :
13.06.2016- 단어 기능의 중간 부분에 의한 검색은 Fastmorph 모듈에 추가되었습니다. 예를 들어, *ә ме *를 입력하면 яр혁터와 같은 단어, 미치는 단어, ∈ әйр로 әмен, 망득, өй дә 그래, өй дәме가 찾을 수 있습니다 ...
21.04.2016- "Fastmorph"모듈의 구현으로 인해 일부 프로세서 최적화 및 멀티 스레딩 지원으로 인해 복잡한 형태 학적 검색이 최대 5 배 더 빠르게 수행된다는 것을 달성했습니다.
03.04.2016- 복잡한 형태 학적 검색 시스템의 특징이 크게 확장되었습니다. 최대 3.0 이상의 버전으로 업데이트 된 가이드에서 더 많은 정보를 얻을 수 있습니다.
22.02.2016- 복잡한 형태 학적 검색 기능은 서면 타타르의 코퍼스에 나타 났으며, 여기서 WordForm, Lemma, 문법 태그, 단어의 시작 및 끝, 거리와 같은 매개 변수의 다른 조합을 사용할 수 있습니다. 기술 정보 : 버전 1은 코퍼스의 약 6GB RAM을 소비하며 116 MLN 단어 발생으로 구성됩니다. 속도는 상당히 높습니다.