문장 경계 명확화

Sentence boundary disambiguation

문장 경계 명확화(SBD)는 문장 파괴, 문장 경계 검출, 문장 분할로도 알려져 있으며, 문장의 시작과 끝을 결정하는 자연 언어 처리의 문제이다.자연어 처리 도구는 종종 입력 정보를 문장으로 분할해야 하지만 문장 경계 식별은 구두점의 잠재적 모호성 때문에 어려울 수 있습니다.영어에서 마침표는 문장의 끝을 나타내거나 줄임표, 소수점, 줄임표 또는 이메일 주소를 나타낼 수 있다.월스트리트 저널 말뭉치에 있는 기간의 약 47%는 [1]약어를 나타낸다.물음표느낌표는 이모티콘, 컴퓨터 코드 은어 사용으로 인해 비슷하게 모호할 수 있습니다.

일본어와 중국어를 포함한 일부 언어에는 명확한 문장 끝 마커가 있습니다.

전략들

문장의 [clarification needed]끝을 찾기 위한 표준 '바닐라' 접근법:

(a) 마침표일 경우 문장을 끝낸다.
(b) 앞의 토큰이 수작업으로 편집된 약어 목록에 있는 경우, 그 토큰은 문장을 끝맺지 않는다.
(c) 다음 토큰이 대문자일 경우 문장을 종료한다.

이 전략은 문장의 95% 정도를 [2]맞힙니다.예를 들어, "D"와 같은 단축형 이름. H. Lawrence(전체 이름을 구성하는 개별 단어 사이에 공백이 있음), 스타일리시한 목적으로 사용되는 독특한 맞춤법(종종 ".hack//SIGN"과 같은 엔터테인먼트 제품 제목 참조) 및 비표준 구두점 사용(또는 구두점의 비표준 사용)이 텍스트에 반영되지 않는 경우가 많다.r 나머지 5%.

또 다른 접근법은 문장 구분이 미리 표시되어 있는 문서 집합에서 규칙 집합을 자동으로 학습하는 것입니다.솔루션은 최대 엔트로피 [3]모델을 기반으로 합니다.SATZ 아키텍처는 뉴럴 네트워크를 사용하여 문장 경계를 명확히 하고 98.5%의 정확도를 달성합니다.

소프트웨어

Perl 호환 정규 표현('PCRE')의 사용 예
  • ((?<=[a-z0-9][.?!]) (?<=[a-z0-9][.?!]\"))(\s \r\n)(?=\"?[A-Z])
  • $sentences = preg_split("/(?<!\..)([\?\!\.]+)\s(?!.\.)/", $text, -1, PREG_SPLIT_DELIM_CAPTURE);(PHP의 경우)
온라인 사용, 라이브러리 및 API
문장 검출을 포함한 툴킷

「 」를 참조해 주세요.

레퍼런스

  1. ^ E. STAMATATOS; N. FAKOTAKIS & G. KOKKINAKIS. "1 AUTOMATIC EXTRACTION OF RULES FOR SENTENCE BOUNDARY DISAMBIGUATION". University of Patras. Retrieved 2009-01-03.
  2. ^ O'Neil, John. "Doing Things with Words, Part Two: Sentence Boundary Detection". Retrieved 2009-01-03.
  3. ^ Reynar, JC; Ratnaparkhi, A. "A Maximum Entropy Approach to Identifying Sentence Boundaries" (PDF). Retrieved 2009-01-03.

외부 링크