2010-03-04 3 views
1

내 질문을 읽어 주셔서 감사합니다 :) 이것은 대단한 사람들로 가득 찬 매우 달콤한 장소입니다!단어의 가방을 사용하여 개념 표현을 만드는 방법

"단어로 문장 만들기"에 대한 질문이 있습니다. NO NO 그것은 내가

"person apple apple person person a eat person will apple eat hungry apple hungry" 

같은 단어의 가방이있는 경우

가, 설명해 드리죠하고 다음 문장의 어떤 종류를 생성 할 수있는 영어 문법 :)에 대해 아닙니다

"hungry person eat apple" 

I 돈 이 주제가 관련 될 분야는 없습니다. 어디에서 답을 찾아야합니까? Google 검색을 시도했지만 영어 문법 만 찾았습니다.

이 문제에서 어떤 알 고가 작동하는지 누가 알 수 있습니까? 또는 프로그램을

감사

P.S : 그것은 할당입니다 : 그것은 내가 소스 코드를 요청 할 것이다 경우! 어떤 분야에서 찾아야할지 모르겠다. :)

+1

언어학이라는 광범위한 분야에서 당신을 안내하는 데 도움이되므로 목표를 명확히해야합니다. 제목은 "개념 표현"이라는 표현 (의미론에 대한 염려를 함)을 사용하지만 질문 자체는 문법적으로 정확해야한다는 암시 적 힌트가있는 다소 임의의 문장을 만드는 것에 만 관련이 있습니다. 그래서 당신 질문은 a) 의미가 중요합니까 (아니면이 게임이 재미있는 문장을 만들기 위해 게임을하는 것과 조금 비슷합니까)? b) 문법을 전혀 또는 대략적으로하지 않습니까? – mjv

+0

... 문장의 생산을 유도하는 것은 무엇입니까? (임의 선택, POS 범주 내의 임의 선택, 의미 론적 관계 ...)? 귀하의 의견은 – mjv

+0

+1입니다. 오, 너 락! 나는 그 광대 한 밭이라는 것을 몰랐다. 우선 내가이 분야에 대해 많이 알지 못해서 질문 제목이 정말 좋은 것인지 확실하지 않습니다. 내게 의미와 문제는 문법이 중요합니다. 그래서이 작업을 수행하기위한 알 고나 API가 있습니까? 질문이 있으면 부탁드립니다. 답장을 보내 드리겠습니다. – user238384

답변

-1

나는 당신이 Generative Grammars을 생각하고 있을지 모르지만, 나는 그렇게 확신하지는 않는다.

+2

"생성 문법"은 "문장 생성"을 의미하지는 않으며, 언어가 계층 적이며 규칙 집합을 기반으로 구성 요소로 나눌 수 있다는 개념을 참조합니다. 개별 단어가 아닌 구문 범주에 대한 규칙입니다. – poundifdef

3

오늘날 성공적인 언어 파서는 통계를 기반으로하며, 이는 Google 번역의 작동 방식과 같습니다. 당신이하는 일은 큰 의미 상으로 마크 업 된 코퍼스를 얻고 워드 차트를 걷기 시작하는 것입니다. 언어 적으로 유효한 영어 문장 세트는 생성 문법 (이전 접근법)보다 큽니다.하지만 큰 코퍼스는 실용적인 문장 템플릿을 많이 제공합니다. 랜덤 워크 (random walk)에서 유전 알고리즘에 이르기까지 데이터 트래버 설 기술을 사용하여 가방에서 문장을 만들 수 있습니다. 우리가하는 일을 알려주십시오! 아래 OP 주석에 대한 응답으로 Stanford statistical natural language processing and corpus-based computational linguistics resources

: 를 유효한 문장의 추상적 인 표현이 있어야 문장을 생성하려면

다음은 시작하는 자원의 큰 집합입니다. 간단한 예는 생성 문법에서 SUBJECT VERB OBJECT입니다. SUBJECT VERB ADJECTIVE OBJECT도 얻을 수 있습니다. 문제는 "배고픈 사과 먹었어."와 같이 문법적으로 올바른 난센스로 채울 수 있다는 것입니다. 어떤 통계 분석은 "배고픈 사과"가 거의 보지 못하는 조합이라는 것을 말해 줄 것입니다 - 진짜 영어 (귀하의 코퍼스)로 나타나기는 매우 어려우므로 의미를 알지 않아도 가능한 한 제거 할 수 있습니다 문장. 문법 검사기를 쓰고 있다면 그 단어 쌍이 의문의 여지가 있음을 강조 할 수 있습니다.

문장 생성기를 작성 했으므로 그 과정을 뒤집어 야합니다. 한 가지 간단한 방법은 단어의 무작위 조합을 간단히 생성 한 다음 데이터베이스와 비교하여 단어를 확인하는 것입니다 체인은 모두 80 %와 같은 확률의 특정 임계 값을 충족합니다. 또 다른 옵션은 유전자 알고리즘에서 개별 단어 체인을 유전자로 취급하는 것입니다. 몇 세대가 지나면 "배고픈 사과"같은 사슬은 "빨간 사과"와 같은 더 성공적인 유전자를 위해 죽을 것입니다. 당신이 언급 한 것과 같은 작은 "단어 가방"으로 당신은 그 공상을 얻을 필요가 없습니다, 당신은 아마도 아무런 문제없이 Numbers < n으로 모든 가능한 문장을 테스트 할 수 있습니다. 단어 가방이 너무 커서 철저하게 계산할 때 문장 검색 알고리즘을 사용하면됩니다.

위의 링크에는 다운로드하여 사용할 수있는 여러 개의 마크 업 된 코사를 비롯하여 자신 만의 corpora를 마크 업하기위한 많은 샘플 프로그램이 있습니다.그러나 이것이 단지 유휴 호기심 프로젝트 일 경우 간단하게 유지하고 싶습니다. 또 다른 제안을 해봅시다. 이용 가능한 가장 큰 자료 중 하나는 Google의 웹 색인입니다. Google 검색에서 따옴표로 묶은 문장이나 구는 많은 조회수를 반환합니다. 예를 들어, "빨간 사과"는 100 만 건이 넘는 반면 "배고픈 사과"는 11,000 자만을 반환합니다. 이것을 사용하여 작은 단어 가방으로 문장의 유효성을 나타내는 작은 통계 마크 업을 만들 수 있습니다. 통계 프로세스가 구현하기에 너무 복잡하다면, 대신 단어 모음에 품사 (표제어를 연구)를 표시하고 프로그램에 다양한 추상 문장 템플릿을 제공하는 것을 고려하십시오. "사람이 굶주린 사과를 먹을 것"과 같이 문장을 얻지 만, 필요에 따라 충분할 수도 있습니다. :)

P.S. 단어 가방에 "an"이라는 단어가 없으면 Tarzan 문법과 사람이 먹는 사과의 세계에 국한된 것으로 보입니다.

+0

감사합니다. 당신의 대답을 위해. 나는 lingustic stuff (lsi, vsm 등)에 대한 지식도 가지고있다. 하지만 나는 당신의 대답을 잘 이해하지 못했습니다. 내가 볼 수있는 샘플 마크 업 된 코퍼스가 있습니까 ?? 구글 번역을 위해 단어가 사전의 도움으로 번역을 참조하십시오. Google에 내 문자열을 입력하면 구문을 생성하지 않습니다. 좀 더 설명해 주시겠습니까 ?? – user238384