2011-04-08 7 views
9

저는 텍스트 문장을 처리하거나 영어와 같은 일반적인 인간 언어로 유효한 문장을 만들 때 구조를 따르는 알고리즘에 대한 정보를 찾고 있습니다. 이 분야에서 일하는 프로젝트가 있다면 배우거나 사용할 수 있는지 알고 싶습니다.컴퓨터 인공 지능 알고리즘 문장을 작성 하시겠습니까?

예를 들어, 프로그램에 명사를 주었을 때 관련 단어에 대한 동의어 사전과 품사 (각 단어가 문장에 속한 곳을 이해할 수 있도록)를 제공했습니다. 유효한 문장?

나는 이런 종류의 연구에 대해 많은 하위 섹션이 있으므로 확실한 결과를 이끌어 낼 수 있습니다.

답변

1

임의의 문장을 쓰는 것은 그렇게 어렵지 않습니다. 모든 구문 분석기 교과서의 간단한 영어 문법 예제를 역순으로 실행하여 문법적으로 올바른 난센스 문장을 생성 할 수 있습니다. 즉 주로 작업하지만

또 다른 방법은, NLG (자연어 세대)라고 http://www.perlmonks.org/index.pl?node_id=94856

9

이 좋아하는 오래된 BYTE 잡지 희화화, 또는 물건에 의해, 인기 단어 튜플 - 랜덤 도보 만들어 데이터 세트를 설명하는 텍스트를 생성하는 것. 완전 무작위 문장 생성에 대한 많은 연구도 있습니다.

하나의 출발점은 문장을 생성하기 위해 마르코프 체인을 사용하는 것입니다. 이것이 어떻게 이루어 지는지는 당신이 모든 모든 품사 (part-of-speech) 사이에서 전환 할 가능성이 얼마나되는지를 말하는 전환 행렬을 가지고 있다는 것입니다. 또한 문장의 시작 부분과 끝 부분의 품사가 가장 많습니다. 이 모든 것을 합치면 음성의 가능성이있는 시퀀스를 생성 할 수 있습니다.

이제 멀리 떨어져 있습니다. 인접한 단어 (또는 바이 그램이라고도 함) 사이의 확률만을 고려할 때 매우 좋은 결과를 제공하지 않으므로 원하는대로 확장하십시오 이것은 예를 들어 3 개의 품사 (이것은 3D 행렬을 만들고 당신에게 트라이 그램을줍니다) 사이의 전이 행렬에서 찾습니다. 처리 능력과 코퍼스가 이러한 매트릭스를 채울 수 있는지에 따라 4-grams, 5-grams 등으로 확장 할 수 있습니다.

마지막으로, 객체 동의 (주제 - 동의어 - 동의어, 동의어 - 동의어 등)와 시제와 같은 것들을 패치해야합니다. 그러면 모든 것이 일치합니다.

14

당신이 자연 언어 생성, http://en.wikipedia.org/wiki/Natural_language_processing

문장 생성이 자연 언어 처리의 서브 필드라고 찾고있는 분야 중 하나는 문장이 원하는 얼마나 좋은에 정말 쉽거나 정말 열심히 따라. 현재 주어진 명사 (시소러스 포함)에 대해 100 % 합리적인 문장을 생성 할 수있는 프로그램이 없습니다. 이것이 의미하는 바라면.

다른 한편으로는 말도 안되는 말도 안되면 만족스럽지 않으면 n-gram 기반의 문장 생성기를 사용해보십시오. 이것들은 연속적으로 나타나는 경향이있는 단어들이 얽혀 있고, 3-4-gram 생성기는 때로는 꽤 괜찮아 보입니다 (스팸 메일을 많이 생성하는 것으로 인식 할지라도). http://www.nltk.org/book/ch02.html#generating-random-text-with-bigrams

+0

두 번째 링크에는 인증이 필요합니다! – Skynet

3

예 :

여기 NLTK를 사용하여 N-g 기반의 세대의 기초에 대한 소개,이다. AI 기술로 NLG의 문제를 해결하는 작업이 있습니다. 내가 아는 한, 현재, 실제 사용을 위해 사용할 수있는 방법은 없습니다.

배경 지식이있는 경우, 자를랜드 대학교의 알렉산더 콜러 (Alexander Koller)의 작업에 익숙해지는 것이 좋습니다. 그는 NLG를 PDDL로 코딩하는 방법을 설명합니다. 읽어야 할 주요 기사는 "계획 문제로 생성되는 문장"입니다.

NLP에 대한 배경 지식이 없으면 Michael Collings 또는 Dan Jurafsky가 온라인 과정 또는 코스 자료를 검색하면됩니다.

관련 문제