2012-10-01 4 views
1

원래 문자열을 사용하여 변형 된 영어 문장을 생성하고 싶습니다. 문법적으로 올바른 문장을 유지하는 몇 가지 기본 검색과 바꾸기를 할 수 있다는 것을 알고 있습니다. 그러나 문장을 좀 더 복잡한 표현으로 바꾸는 방법이 있습니까?PHP - 영어 구문과 문장의 변형 생성

예를 들어 "고양이가 개를보고 있습니다."라는 문장이 나오면 "고양이가 개를 응시하고 있습니다"와 "고양이가 개를보고 있습니다"라고 생각합니다. 미안하지만, 나는 더 예리한 예를 생각해 낼 수 없다!

+0

아무것도를,하지만 난 쉽게 "A"에 대한 정규식하고는 ""로 교체 할 수 있습니다 의미했다. 이미 문장을 재창조 할 수있는 무언가가 있는지 궁금합니다 ... – 0pt1m1z3

+0

어쩌면 [Markov Chains] (http://www.cs.princeton.edu/courses/archive/spr05/cos126/assignments/markov.html) 재미있을 수 있습니다. – complex857

답변

2

일반적으로 자연어는 일반 표현식보다 더 복잡한 문법 유형입니다. 그래서 일반적으로 대답은 '아니오'입니다. 반면에 원하는 범위가 충분하지 않으면 regexps가 충분할 수 있습니다. 그러나 나는 그것을 너무 열심히 땀을 흘리지 않을 것이고 근본적으로 제한된 해결책이 될 것입니다.

더 많은 작업을 수행 할 수있는 툴킷의 경우 NLTK (Python 전용)을 확인하십시오.

Regexps가 자연 언어로 사용하기에 제한적인 이유에 대한 자세한 내용은 Chomsky Hierarchy on Wikipedia을 참조하십시오. 영어가 least a context-free language에 있다고 추측됩니다.

+0

감사합니다. 이것은 유용했습니다. MS에서 API 솔루션을 찾았습니다. 아래 답변을 입력했습니다. – 0pt1m1z3