추상 위키백과/위키데이터 추상 표현
추상 위키백과 |
---|
(토론) |
일반 |
개발 계획 |
메모, 초안, 토론 |
|
예제 및 모형 |
데이터 도구 |
역사 |
이것은 생성자의 좁은 맥락과 위키데이터 추상 표현 및 자연어 생성 프로젝트의 넓은 맥락에서 자연어의 추상적 표현을 위한 제안으로 아직 논의 중입니다.
이 제안에서 우리는 데니 브란데치치의 문서 "Architecture for a Multilingual Wikipedia"의 내용을 공통 근거로 채택합니다.[1]
초기 저자 및 공동 저자: 쿠츠 아리에타, 마리아 키트, 제임스 포레스터, 아리엘 구트만, 코리 마사로, 아서 로렌지.
생성자 유닛
생성자는 정보적으로 완전한 술어문의 추상적 표현을 포함합니다. 일반적으로 단일 렌더러에 해당하지만 이는 어려운 요구 사항이 아닙니다.
내부에 생성자를 포함하는 슈퍼 생성자가 있을 수도 있습니다. 단락 또는 전체 문서의 개요에 해당합니다. 생성자의 중첩은 일반적으로 허용됩니다. 또한 가독성을 향상시키기 위해 하나의 생성자를 둘 이상의 문장으로 구두화할 수도 있습니다(공통 분모 섹션의 예에서도 마찬가지임). 구문적 맥락에 따라 생성자는 명사구(예: "샌프란시스코는 4번째로 큰 도시..." 등)로 구두화되거나 여러 문장과 같은 실현이 가능합니다(예: 독일어에서는 독립형 또는 포함된 문장의 구조에 차이가 있음). 이 모든 것은 렌더링 시간에 발생합니다.
생성자의 수는 더 많은 "언어"와 언어가 표시됨에 따라 증가합니다. 미래에는 파서에 의해 자동 또는 반자동으로 생성될 수 있습니다.
우리는 구성성/조합성을 가정하고 있습니다. 컨스트럭터는 더 큰 단위로 결합되고 그 과정에서 일부 요소 및 위치 지정에 대한 공식적인 변경을 거칩니다.
생성자 구조
지침 원칙으로서, 초기 시스템은 기여자가 포함된 반복적인 수정 프로세스를 제공하기 위해 무해한 실수를 할 수 있습니다.
생성자는 구문, 형태, 어휘 또는 언어별 정보를 포함해서는 안 됩니다. 그러나 생성자는 서로 영향을 미치는 다른 구성 요소와 함께 생태계에 살고 있으며 그에 따라 적응해야 할 수도 있습니다.
술어(= 생성자의 이름/유형)
이것은 종종 (대부분의 언어 형식주의에서) 동사구로 알려진 내용의 보다 "구두적인" 부분입니다. 이것이 진술의 핵심입니다. 핵이 동사인 문장으로 렌더링될 것입니다.
핵심에서 우리는 (논리적 의미에서) 관계를 다루고 있습니다. 특정 언어화는 생성자의 유형과 특정 언어 또는 로케일에 따라 다릅니다.
공통 분모 섹션에서 언급한 예에서 "순위"는 술어이고 실제 표현은 해당 관계의 인스턴스입니다.
생성자 유형, 예. 순위 구성자는 개별 도시(또는 개체)에 관계없이 존재할 수 있으므로 해당 데이터를 사용할 수 있는 모든 도시 또는 개체에 사용할 수 있습니다. [add reference to CoSMo]
시맨틱 역할 및 슬롯
추상적 표현은 어떤 어휘 엔티티(예: QID와 같은 명명된 엔티티인지 여부)가 언어화되고 구문 계층에서 어떤 프로세스가 발생해야 하는지에 대한 신호를 렌더러에 보냅니다. 이러한 신호는 슬롯(인수), 의미론적 역할 및 술어(형식, 화행 등) 모두에 첨부될 수 있습니다.
이 문서에서 처음 제시된 입장은 생성자에서 "의미론적 역할"(예: 용어는 다를 수 있지만 "agent" 또는 "patient")을 명시적으로 사용하는 것입니다. 그런 다음 렌더러가 적절한 어휘소를 선택하고 올바른 언어 출력을 생성하는 데 필요한 신호 역할을 합니다.
이 경우 모든 술어와 관련된 슬롯은 의미론적 역할(기본 또는 보조)에 대해 레이블이 지정됩니다.
의미론적 신호는 파이프라인으로 전송되며 사후 처리에서 해결되어야 합니다.
여기에서 사용할 수 있는 의미론적 역할 인코딩에 대한 몇 가지 의미론적 프레임워크/접근법이 있습니다. 일부만 언급하자면:
ACTOR
및UNDERGOER
(때때로AGENT
및PATIENT
로 명명됨)와 같은 의미론적 거대 역할.ACTOR
는 모든 술어와 함께 사용할 수 있는 반면UNDERGOER
는 모든 전이 술어와 함께 사용할 수 있습니다.- 의미론적 역할에 대한 보다 철저한 프레임워크로 술어에 따라 역할 이름에 더 많은 다양성을 허용합니다. 이러한 역할에는
AGENT
,PATIENT
,EXPERIENCER
,RECIPIENT
등과 같은 개념이 포함됩니다. - Framenet과 유사한 술어별 시맨틱 역할. 예를 들어, Framenet은 "Ingestor", "Ingestible" 및 "Instrument"와 같은 역할로 "ingestion" 술어를 정의합니다. "ingestion" 술어는 "eating", "drinking", "devouring" 등과 같은 다른 동사(같은 언어에서도)에 해당할 수 있습니다.
- 임시 인수는 다양한 구두 술어(특정 Q-id와 관련될 수 있음)에 대해 정의될 수 있습니다. 예를 들어 "eating" 술어(Q213449에 연결될 수 있음)의 경우 실현 등에 필요한 대로 먹는 사람, 음식, 도구와 같은 인수를 정의할 수 있습니다. 이는 위의 가능성과 유사하지만 명시적으로 더 임시적이고 여러 유사한 술어에 대해 일반화하려고 시도하지 않습니다.
의미론적 역할을 정의하면 표면적으로 동일한 술어를 구별할 수 있습니다. 예를 들면 다음과 같습니다:
ORDER1
order [someone {patient} ] [to do X {object:verbal} ] [next week {time} ] [to fix Y {cause/purpose:verbal} ]
ORDER2
order [a sandwich {object} ] [in a restaurant {location/source} ] [to go {modality} ]
등.
문법적 경우는 역할(종종 접미사), 의미, 렌더링의 표시를 통해 주요 의미론적 역할의 형태론적 실현입니다. 이들은 기본 의미론적 역할의 구문론적 대응물을 나타냅니다. 자연 언어로 올바르게 렌더링하려면 다음과 같은 이유로 이 정보가 필요합니다:
- 풍부한 마킹 시스템이 있는 언어에서 이 정보는 역할을 수행하는 어휘소의 올바른 형식을 선택하고 때로는 동사의 적절한 형식을 선택하는 데 필요합니다. 이러한 역할 중 일부는 동사 자체의 형태로 표현될 수 있기 때문입니다.
- 격 체계가 풍부하지 않은 언어에서는 이 정보가 문장의 슬롯 위치를 결정하거나 전치사구를 통해 렌더링됩니다.
"의존성" 또는 보조 역할
전치사구, 부사구, 부사, 후치사/구군에 의미론적 역할 특징을 할당합니다. 언어에 따라 다른 방식으로 렌더링됩니다.
우리는 1차 및 2차 의미론적 역할을 구분하고 있습니다. 기본 역할은 술어와 직접 관련되므로 생성자 정의의 일부입니다. 이론적으로 보조 역할은 모든 생성자에 추가할 수 있습니다.
의미론적-실용적 기능
이러한 기능 중 일부(예: 일본어 수량사의 경우 애니메이션, 인간성, 모양)는 어휘 표현(예: 위키데이터 사전식 데이터)으로 표현되어야 합니다. 이 정보를 통해 렌더러는 다음을 수행할 수 있습니다:
- 순전히 구문론적 고려 사항을 넘어 적절한 어휘소와 의미론적 역할을 일치시킵니다.
- 어휘소 간에 적절한 동의(또는 일치)를 적용합니다.
프로젝트의 두 번째 단계:
STATEMENT
,WH-QUESTION
,OPEN_ENDED QUESTION
등과 같은 담론 수준의 실용적인 기능은 구문 계층에 신호를 보내기 위해 생성자의 추상 표현에 포함되어야 합니다.- 형식 및 기타 그러한 신호도 술어 자체에 포함되고 첨부되어야 합니다. 형식 신호는 아마도 템플릿과 어휘소에도 있어야 합니다.
또한 문장의 의미론에 간접적이지만 의미 있는 영향을 미치는 문장 수준 수식어인 "as it stand", "as far as we know" 등과 같은 표현을 포함하는 슬롯도 여기에 포함해야 합니다. 그들에게 할당된 역할이 있어야 합니다.
생성자의 외부 참조
위에서 언급했듯이 생성자는 형태, 구문, 어휘, 콘텐츠 구현 등과 같은 언어별 정보를 포함하지 않지만 이러한 외부 구성 요소를 염두에 두어야 합니다.
콘텐츠
내용은 문이 참조하는 엔터티(QID 또는 어휘소)를 가리킵니다. 내용은 기본적으로 명령문의 슬롯을 채우는 어휘소 및 QID를 가리킵니다.
구문론적 계층
이 계층은 사용할 어휘소의 문법적 특징(위키데이터의 경우 어휘 엔티티), 구성 요소/슬롯이 렌더링되는 순서 및 해당 렌더러가 겪을 수 있는 추가 수정과 같은 측면과 관련이 있습니다.
이 레이어는 구성적입니다. 따라서 사용 가능한 생성자를 결합하거나 결합하지 않는 데 필요한 규칙도 포함합니다.
이 레이터는 형태통사론과 음운론적 규칙에 따라 어휘소를 적절하게 선택하기 위한 신호를 포함합니다. 그들은 다른 함수와 다른 시간에 렌더링됩니다.
템플릿 언어를 사용하는 경우 전체 아키텍처의 위키함수 오케스트레이터 구성 요소에서 처리할 수 있도록 추상 표현 및 구성 구문에 연결됩니다.
형태학적 레이어
현재 위키데이터의 형태는 어휘 항목에 연결되어 있습니다. 따라서 우리는 형태학적 레이어를 배치하지 않습니다. 형태적 특징은 어휘소의 표현에 포함되어야 합니다.
어휘소는 의미론적 특징과 추상 표현이 인코딩할 수 있는 다른 특징을 포함해야 합니다. 기능에 대한 정확한 일치를 요구해서는 안 됩니다. 즉, 필요하지 않은 기능을 과도하게 지정해서는 안 됩니다. 예를 들어 많은 명사 또는 엔터티가 여러 역할을 수행할 수 있습니다. 이러한 항목이 추상 표현의 제한을 우회할 수 있도록 하는 일반적인 기능이 있어야 합니다. 일부 언어에서는 동일한 어휘소가 거의 모든 역할을 수행하는 경향이 있습니다. 그러나 어휘소가 능동형인 경우에는 대리인의 역할만 수행할 수 있다고 가정해 봅시다. 그 어휘소가 능격+단수형과 절대형+복수의 특징을 모두 가지고 있다면 행위자, 주어, 목적어의 역할을 다할 수 있습니다.
전치사, 조사 및 후치사(및 기타 비명목 범주)는 첨부 제한을 인코딩해야 합니다. 다음은 예입니다:
- 역할: 주제/정보/제목
- 영어: about {prep} (제한사항: 명사구/명사화된 동사)
- 독일어: von {prep} (제한 사항: ……/여격)
- 바스크어: bidez {postposition} {instrumental case} (제한: 명사구 / 명사화된 동사 + 속격)
우리는 규칙을 어디에 어떻게 저장해야 하는지에 대한 조정에 도달해야 합니다. 함수 또는 선언적으로 저장할 수 있습니다. 현재 합의는 가능한 한 선언적으로 저장하는 것 같습니다.
어휘소에 형태학의 무게를 두는 것은 아마도 올바른 방법일 것입니다. 추상 위키백과는 청중 기여를 기반으로 하기 때문입니다. 그러나 이렇게 하면 어휘소와 아마도 오케스트레이터에 복잡성이 추가됩니다.
언어에 대한 데이터를 도입할 때 형태학적 계층을 구축하면 다양한 형태의 어휘소를 생성하고 과도하게 생성(화자가 정리하도록)하는 데 사용할 수 있습니다. 이것은 새로운 언어 추가를 용이하게 하는 툴킷의 일부가 될 수 있습니다. [add link to Wikidata article-workshop]
제안
토론
생성자의 잘못된 입력
아마 주 신호와 보조 신호를 분리해야 할 것입니다. 복수는 보조 신호 중 하나일 수 있습니다. 그러나 우리는 형태론적 복수형과 의미론적 복수형을 구별해야 합니다:
- 형태학적 복수형은 언어에서 명백한 언어 고유의 특징입니다(굴곡 또는 동의로 인해). 모든 언어에 형태학적 복수형이 있는 것은 아니므로 생성자에서 이 기능을 표시하지 않도록 선택할 수 있습니다. 그러나 생성자가 충분히 추상적이고 많은 언어에서 충분히 재사용 가능하도록 하려면 모든 경우에 복수를 표시하고 렌더러가 무엇을 무시할지 결정하도록 선택할 수 있습니다.
- 의미론적 복수형은 집합이 복수의 항목을 포함한다는 생각입니다(예: 항목은 "many" 또는 "some"과 같은 수량사와 연관될 수 있음). 이는 생성자에서 표시될 수 있습니다. 그것이 복수 명사로 실현되는지, 복수의 구두 동의로 실현되는지 또는 주어진 언어에서 전혀 실현되지 않는지는 주어진 언어를 렌더링하는 사람에게 달려 있습니다.
복수를 다루는 하위 생성자를 가질 수 있습니다. 이와 같은 디자인 문제를 해결해야 합니다.
일련의 시맨틱 역할을 제시하는 것이 현명한 방법이지만 사용자가 시맨틱 역할을 올바르게 할당하지 못할 수도 있음을 명심해야 합니다. 더 많은 추상 생성자를 만들고 어휘 모듈로 이동하여 동사 술어 구조를 확인하고 싶을 수 있습니다. 또 다른 옵션은 작업 및 심사 프로세스를 용이하게 하는 API 및 문서를 보유하는 것입니다.
표현은 래퍼이며 그 옆에는 개체 및 정보 집합이 있으며 이를 실현하는 것은 렌더러의 문제입니다. 정보를 복구할 수 없는 경우를 찾아야 합니다.
생성자가 렌더러에 연결된 경우. 역할은 렌더러에 내포되어 있습니다. 그러나 렌더러에 연결된 생성자의 결정은 내려지지 않았습니다. 이러한 경우 사용자는 예제를 포함하고 역할은 예제에 암시적입니다. 그러나 사용자의 예에 의존하는 것은 위험할 수 있습니다.
내적으로 결정하기 어려울 것입니다. 포함하지 않은 것으로부터 복구할 메커니즘이 필요합니다. 데이터의 잘못입니까 아니면 콘텐츠의 잘못입니까?
커뮤니티는 출생과 같은 생성자 클래스를 구축합니다. "A Hierarchical Unification of LIRICS and VerbNet Semantic Roles", 그림1,[2] 그리고 "A Hierarchy with, of, and for Preposition Supersenses", 그림1.[3] 참조. Actor
와 같은 역할이 필요합니다. 그렇지 않으면 템플릿에서 올바른 항목 할당을 완전히 확인할 수 없습니다.
다양한 역할 유형
서로 다른 여러 종류의 역할이 공존하는 것을 방해하는 것이 있습니까? 동일한 행위에 대해 여러 생성자가 존재하는 상황을 방지하고 싶습니까?
예를 들어, 프레임넷 스타일의 식사 표현은 다음과 같습니다.
EAT ( role:EATER, role:THING_EATEN )
매크로 역할이 있는 표현은 다음과 같이 보일 수 있습니다.
EAT ( role:AGENT, role:OBJECT )
바람직하지 않은 상황일 수 있지만 커뮤니티가 자체 생성자를 만들기 시작하면 불가피할 수 있습니다.
이를 관리하기 위해 도메인별 역할 계층을 쉽게 추가할 수 있습니다. 예: SubRole(Eater, Agent)
은 SubRole(Predator, Agent)
등에 대해서도 작동합니다. 사용자의 필수 이름 지정은 너무 많을 수 있지만 백엔드에서 framenet 또는 verbnet과 같은 값으로 채우는 것이 유용할 수 있습니다.
기타 제안
TBD
예시
다음은 이 제안을 테스트하기 위한 몇 가지 임의의 예입니다.
"이러한 예에 제공된 추상적 표현은 표현 제안으로 이해되어야 합니다. 이 문서의 작성자는 이러한 표현이나 제안 자체에 대한 합의에 도달하지 못했습니다. 또한 이러한 표현은 이 제안의 기본 신조 중 하나에 반하는 시맨틱 역할을 참조하지 않습니다."
- Edith Eger is the youngest daughter of Lajos and Ilona Elefánt, Hungarian Jews in an area which was, at the time of her birth, in Czechoslovakia. Her father was a tailor.
Child[person=Edith Eger,father=Lajos Elefant,mother=Ilona Elefánt,rank=<last>]
->
child_renderer_en:"{Person}{Copula}the{Rank}{Lexeme(child)}of{father}and{mother}."
예를 들어 "유형 수준" 생성자
Child [ person = <a person>, father = <a person>, mother = <a person>, rank = <rank value> ]
그래서 우리는 모든 자녀와 그들의 부모에 대한 데이터를 가져오고 데이터에 있는 각 [자식, 아버지, 어머니] 조합에 대한 문장으로 렌더링할 수 있습니까?
예제의 일부로 목록 어딘가에 추가할 다른 느슨한 끝은 생성자를 템플릿에 연결하는 방법, 생성자의 올바른 요소가 템플릿의 올바른 요소와 일치하는지 확인하는 방법, 위의 자식 생성자에 대한 것과 같이, 우리는 예를 들어,
-> child_renderer_en_1: "{Person} {Copula} the {Rank} {Lexeme(child)} of {father} and {mother}."
또는
-> child_renderer_en_2: "{father} and {mother} had {Person} as the {Rank} {Lexeme(child)}."
하지만 아닙니다
child_renderer_en_wrong: "{father} {Copula} the {Rank} {Lexeme(child)} of {Person} and {mother}."
현명하게 완료되길 바라는 초기 단계와 검증을 위한 2단계를 지금 무시하시겠습니까? 어떻게든 생성자 또는 템플릿 언어 중 하나로 구워질 수 있습니까? 심지어해야합니까? 예를 들어 like that person은 주어이지만 그것은 텍스트에서 실현되므로 child_renderer_en_wrong
이 UD/SUD/thelike의 사양을 사용할 때 잘못된 것으로 표시될 수 있습니다.
예를 들어 생성자에 subj:person
이 있기 때문에 {subj:father}
로?
-> child_renderer_en: "{Person} {Copula} the {Rank} {Lexeme(child)} of {father} and {mother}."
Ethnicity [ person = Edith Eger, ethnicities = < Jewish, Hungarian > ]
Location [ person = Edith Eger, place = Czechoslovakia, time = Birth [ person = Edith Eger ] ]
Birth [ person = Edith Eger, place = Czechoslovakia ]
Profession [ person = Lajos, profession = tailor ]
"참고: 다음 예는 명사화된 -ing(또는 동명사), 비인칭 수동 구조, 양화사 both 및 많은 조정과 같은 흥미로운 언어 현상을 보여줍니다."
- Cooking is done both by people in their own dwellings and by professional cooks and chefs in restaurants and other food establishments.
Conjunct [ Cook [ chef = people, location = <home> ], Cook = [ chef = professional cook, location = restaurants ] ]
- Invasion of Privacy (album)
이것은 QID가 되어야 합니다. 그러나 우리는 다소 어휘화된 다른 명목화된 구조가 어떻게 표현되어야 하는지에 대해 생각해야 합니다.
다음 예에 대해서는 추상적인 표현이 제안되지 않았습니다:
- Gravity has an infinite range, although its effects become weaker as objects get farther away.
- Don't Starve is a survival video game developed by the Canadian indie video game developer Klei Entertainment.
- In linguistics, a noun phrase, or nominal (phrase), is a phrase that has a noun or pronoun as its head or performs the same grammatical function as a noun.
다음 예제는 Scribunto 기반 NLG 시스템에서 사용되었습니다:
- 렌더링된 텍스트(영어):
- Marie Curie was a Polish chemist and physicist. She was born 7 November 1867 in Warsaw and died 4 July 1934 in Passy. Marie Curie was a pioneer in the research of radioactivity. She researched radium. She was awarded the Nobel Prize in Physics in 1903, together with Pierre Curie and Henri Becquerel, for pioneering the research of radioactivity. She was awarded the Nobel Prize in Chemistry in 1911, for the discovery of polonium and radium. Marie Curie was the first woman to win the Nobel Prize.
- 추상 콘텐츠(제안):[Note 1]
Person { person = "Q7186", birth = Birth { date = Date { day = "7", month = "11", year = "1867", }, place = "Q270", }, death = Death { date = Date { day = "4", month = "7", year = "1934", }, place = "Q388949", }, origin = "Q36", -- Poland. Should be a list including France occupation = List { _predicate = "List", first ="Q593644", -- Chemist second = "Q169470", -- Physicist } }, Pioneer { person = "Q7186", in_what = Research { research_field = "Q11448", -- Radioactivity }, }, Research { person = "Q7186", pronominalize = true, -- This should possibly done by a post-processor research_field = "Q1128", }, AwardedPrize { person = "Q7186", pronominalize = true, prize = "Q38104", -- Nobel prize in physics date = Date { year = "1903", }, with = List { first = "Q37463", second = "Q41269", }, reason = Pioneer { person = "Q7186", in_what = Research { research_field = "Q11448", -- Radioactivity }, }, }, AwardedPrize { person = "Q7186", pronominalize = true, prize = "Q44585", -- Nobel prize in physics date = Date { year = "1911", }, reason = Discovery { discovery = List { first = "Q979", second = "Q1128" } } }, Rank { rank = 1, person = "Q7186", reference_group = "Q467", -- woman activity = AwardedPrize { prize = "Q7191", -- Nobel Prize } }
각주
- ↑ "Person"은 문서의 첫 번째 문장에서 사람을 소개하는 생성자를 의도하므로 "PersonIntroduction"으로 이름을 지정해야 합니다.
참조
- ↑ Vrandečić, Denny (2020). "Architecture for a Multilingual Wikipedia". arXiv:2004.04733.
- ↑ Bonial, Claire; Corvey, William; Palmer, Martha; Petukhova, Volha V.; Bunt, Harry (2011). "LIRICS와 VerbNet 시맨틱 역할의 계층적 통합". 2011 IEEE Fifth International Conference on Semantic Computing (IEEE). doi:10.1109/ICSC.2011.57. Retrieved 2022-11-24.
- ↑ Schneider, Nathan; Srikumar, Vivek; Hwang, Jena D.; Palmer, Martha (2015). "전치사 초감각을 가진, 의, 그리고 위한 계층" (PDF). Proceedings of LAW IX - The 9th Linguistic Annotation Workshop (Association for Computational Linguistics). Retrieved 2022-11-24.