2012-08-28 2 views
0

나는 어떤 문장을 유효한 문장으로 파싱하는지에 대해 의문을 가지고 있습니다. 유효한 문장으로 텍스트를 구문 분석

텍스트가 iamjhamb을 부여하고 i am jhamb

My approach: I solved this using Dynamic programmnig, 
      Make an array T[], where T[i] shows string from 0 to i made any valid setence or not 
      formula is T[i] = 1 iff T[j] = 1 and substring(j+1, i) is a word in dictionary for all 
      j < i. 

으로 분석되고 가정하지만이 questioin의 수요가 아니므로이 방법은, 그것은 가능한 모든 단어는이 텍스트에서 형성 제공, 완전히 정확하지 않습니다. 이 방법을 수정하거나 다른 좋은 접근 방법을 제안하십시오.

나는 하나 더 의심 스럽다. 필자는 Suffix 배열에 관해서 많은 것을 조사했지만 좋은 튜토리얼을 얻지 못했다. 그래서 그 개념을 이해하게하거나 좋은 링크를 제안하십시오. 미리 감사드립니다.

+2

귀하의 "유효한"문장은 무엇입니까? 예 : 영어로 된 문장으로 "감각"을 갖거나 영어 단어로 이루어져야합니까? –

+0

사전에 있거나 단어가 의미가 있다고 말할 수 있어야합니다. – devsda

답변

0

String에 대한 트라이를 구성 해 보았습니까? 그들에 대해 읽어보십시오 here. 선택할 수있는 선택 항목이 여러 개인 경우를 제외하고는 작동합니다. 예 : aneata neat 또는 an eat 일 수 있습니다.

+0

접미사 배열에 대한 좋은 링크를 제안 할 수 있습니다. 개념을 완전히 이해할 수 없습니다. – devsda

1

이 문제는 자연어 처리시 word segmentation problem으로 알려져 있습니다. 이 문제는 영어에서는 거의 발생하지 않지만 아랍어 나 중국어에서는 매우 일반적입니다. 주제에 관한 문헌을 검토하고 방법 중 하나를 귀하의 경우에 적용하는 것을 고려할 수 있습니다.

알고리즘에 관해서는 가장 간단한 방법은 생산할 수있는 세그먼트를 열거하고 language model을 사용하여 세그먼트를 선택하는 것입니다. 나는 bigram 모델이 단순한 문장으로 충분할 것이라고 생각한다.

접미어 트리를 사용하면 가능한 세분화를 더 효율적으로 찾을 수 있지만 language model based on suffix trees을 제외하고는 가장 가능성이 높은 세그먼트를 찾을 수 있습니다.

관련 문제