2014-09-02 3 views
2

안녕하세요.Hunspell 부착 조건 정규식 형식입니다. 시작과 일치하는 방법은 없나요?

내 응용 프로그램에서 형태소 분석기로 Hunspell을 사용하려고합니다. 나는 포터와 눈싸움이 "abus", "exampl"같은 "chopped"단어 결과 때문에 형태가 바뀌는 것을 좋아하지 않습니다. Lemmatizing은 좋은 대안으로 보이지만 좋은 CoreNLP 대안을 모릅니다. 프로젝트의 소스 코드를 Java로 포팅하거나 브리지를 아직 사용할 준비가되지 않았습니다. 이상적으로 나는 주어진 단어의 초기 - 같은 - 사전 - 형태를보고 싶습니다.

대부분의 사전에는 입찰 및 입찰, 설정 및 설정, 가져 오기 및 가져 오기 등을 위해 .dic 파일에서 별도의 단어가 있음을 알게되었습니다. Hunspell에서 경험하지는 못했지만 거기에 없습니다. 3 글자 단어로 더블 d 또는 t를 다루는 영리한 방법? "설정"이 실제로 "설정"에서 파생되었다고 생각하게하는 방법이 있습니까?

Hunspell의 현재 문제는 affix 파일을 작성/편집하기위한 포괄적 인 문서를 얻을 수 없다는 것입니다. 나는이 일을 시도했습니다

SFX G Y 2 
SFX G e  ing  e 
SFX G 0  ing  [^e] 

: http://manpages.ubuntu.com/manpages/dapper/man4/hunspell.4.html

(4) condition. 

Zero stripping or affix are indicated by zero. Zero condition is 
indicated by dot. Condition is a simplified, regular 
expression-like pattern, which must be met before the affix can 
be applied. (Dot signs an arbitrary character. Characters in 
braces sign an arbitrary character from the character subset. 
Dash hasn’t got special meaning, but circumflex (^) next the 
first brace sets the complementer character set.) 

기본 중 하나는 이것이다 :

SFX G Y 4 
SFX G e  ing  e 
SFX G 0  ing  [^e] 
SFX G 0  ting  [bcdfghjklmnpqrstvwxz][aeiou]t 
SFX G 0  ding  [bcdfghjklmnpqrstvwxz][aeiou]d 

을하지만 분명히 또한 자산과 일치합니다 즉 무엇을 문서화하는 것은 여기라고합니다. 어떻게 든 돌아 다니는 방법이 있습니까? Regexp의 시작 부분에^기호를 시도했지만 작동하지 않는 것처럼 보입니다. 작동 시키려면 어떻게해야합니까?

미리 감사드립니다.

답변

1

자산과 일치합니까? 그건 동사가 아니기 때문에 접미어가 붙어 있으면 안됩니다.

언어가 완벽하게 규칙적인 문제는 아닙니다. SoftAstur의 Asturian 맞춤법 검사기에 사용 된 솔루션은 특정 접미어를 구성하는 동사 목록을 추적하고 스크립트가 보유한 목록을 기반으로 .dic 파일을 구성하는 것입니다.

그래서 영어를 들면, 사용자가 정의하는 것 두 개의 별도의 접사 1 :

SFX Gs Y 3 
SFX Gs e ing [^eoy]e 
SFX Gs 0 ing [eoy]e 
SFX Gs 0 ing [^e] 

SFX Gd Y 9 
SFX 0 bing [^aeiou][aeiou]b 
SFX 0 king [^aeiou][aeiou]c 
SFX 0 ding [^aeiou][aeiou]d 
SFX 0 ling [^aeiou][aeiou]l # for British English 
SFX 0 ming [^aeiou][aeiou]m 
SFX 0 ning [^aeiou][aeiou]n 
SFX 0 ping [^aeiou][aeiou]p 
SFX 0 ring [^aeiou][aeiou]r 
SFX 0 ting [^aeiou][aeiou]t 

을 다 태우 같은 다른 비정규군이 여전히있다 ( 노래와 대조하는) 드문만큼 그들은 아마 별도로 코딩 됨. 그들은 당신이 태그의 많은 단어가 있다면 쉽게 읽을 수 있듯이

admit/Gd --> admitting 
bake/Gs  --> baking 
commit/Gd --> committed 
free/Gs  --> freeing 
dye/Gs  --> dyeing 
inherit/Gs --> inherited 
picnic/Gd --> picnicking 
target/Gs --> targetting 
tiptoe/Gs --> tiptoeing 
travel/Gs --> traveling (if American English) 
travel/Gd --> travelling (if British English) 
refer/Gd --> referring 
sing/Gs  --> singing 
singe 
singing 
sob/Gd  --> sobbing 
smile/Gs --> smiling 
stop/Gd  --> stopping 
tap/Gd  --> tapping 
visit/Gs --> visiting 

1. 나는 두 글자 태그를 선호, 같은 : 그래서 사전 파일은 다음에 따라 다소 싶습니다 그 Gd = 은 두 배로Gs = 개 별 하나 또는 그와 비슷한 것입니다. 아마도 영어에 대해서는 문제가되지 않지만 다른 언어에 대해서는 분명히 있습니다. 접미사가 많지 않은 경우 g (중복 없음) 및 (중복)으로 갈 수 있습니다.

+0

글쎄, 실제로 그렇게하는 것이 ** 올바른 ** 방법이라고 생각됩니다. 그리고 그것은 너무 분명하고 단순 해 보였습니다. 나는 초기의 어리석은 질문이 어땠는지 보게되었습니다. 이 두 문자 접미사 이름 뒤에 멋진 직감 btw. 대답 해줘서 고마워. 이런 접미사 형식의 Hunspell 사전이 있는지 궁금합니다. 제가 현재 사용하고있는 사람은 하나의 자음 접미사를 가지고 있기 때문에 자음 접미사가 두 배로 된 단어가있을 때마다 그것을 .dic 파일에서 제외로 처리합니다. – SimpleV

+0

Hunspell은 두 가지 이유로 실망 스럽습니다 : 정확하게 문서화되어 있지 않으며 정확한 입력이 필요합니다 (하나씩 첨부를 잘못 계산하면 그 중 하나를 인식하지 못합니다). 필자는 모든 기능을 사용했지만 복합 단어를 사용함에 따라 경험을 바탕으로 한 자습서를 작성하는 것을 강력하게 고려하고 있습니다. 재 작성이 필요하지만 소스 코드가 사실상 읽을 수없고 잘 작성되지 않았습니다. 실제로 어떤 시점에서 다시 쓸 수도 있지만 시간이 있기까지 2 년 정도 걸릴 것입니다. – guifa

+0

@SimpleV 두 문자 접미사 예제에서 우리 Asturian 하나를 사용하고, Hunspell은 헝가리어에 필요한 기능을 추가하도록 설계 되었기 때문에 헝가리어는 두 문자 접미사 이후로 사용됩니다. 고도로 합성 된 다른 언어가 있다면 그들은 그것들을 가질 것입니다. 그러나 한 글자의 접미어를 원한다면 두 글자가되어야합니다. – guifa