analyzeSyntax
方法返回给定文本语言结构的详细信息。Natural Language API 就文本中的每个词法单元提供其内部结构信息(词法)及其在句子(语法)中所起作用的信息。
词态学研究单词内部结构。词态学侧重于如何排列或修饰单词内的元素(词根、根词、前缀、后缀等)以形成不同的含义。举例来说,英语通常在名词末尾添加“-s”或“-es”表示复数,在动词中添加“-d”或“-ed”表示过去式。在形容词中添加后缀“-ly”变成副词(例如,“happy”[形容词]和“happily”[副词])。
Natural Language API 使用词态分析来推断单词的语法信息。
语言之间的语态学差异很大。在诸如俄语之类的语言中,词尾表示单词在句子中的角色(例如,“книга”[书籍 - 主格]变为“книгу”[宾格]充当动词的直接宾语)。这意味着单词顺序变化可以不改变句子的含义,尽管单词顺序不同确实会影响在语境中的适切性。英语和普通话等语言都缺少表示语法格的词缀,更依赖句子中的词序来表示单词各自的作用。因此,语态分析在很大程度上取决于源语言,以及对于该语言支持哪种语态学的了解。
语法研究短语和句子结构。语法和词态共同表示语法关系,其中不同的语言以不同的方式区分它们之间的分工。举例来说,俄语使用词缀表示扮演直接宾语的角色(“книгу”中的“у”),而英语使用词序,其中直接宾语紧跟动词 (read the book)。
analyzeSyntax
响应在 partOfSpeech
字段中返回词法信息并在 dependencyTree
字段中返回单词之间的语法关系。
词性
在语法请求中,词性和词法信息在响应的 partOfSpeech
字段中返回。partOfSpeech
字段包含一组子字段,其中具有词性 (POS) 信息以及更明确的词法信息。下面列出了这些子字段。
tag
使用粗粒度 POS 标记(名词、动词等)表示词性,并提供顶层语法信息。如果您希望为后续语言分析创建模式和/或减少歧义(例如,将“train”标记为名词而非动词),则 POS 标签很有用。number
表示一个单词的语法数量。在英语中,在可数名词中添加后缀“-s”表示一个以上(例如,“dog + s”表示多于一只狗)。如果不带复数后缀,则通常称为单数形式。有些语言,如阿拉伯语,还有双数的概念。此字段可能包含下列值:SINGULAR
表示一个。PLURAL
表示多个数量。DUAL
表示恰好两个。
person
确定一个单词的语法人称。在英语中,“I/me”是第一人称单数,指代说话者(或作者),而“you”以及“she/her 和 he/him”分别指代受众(听话者)和其他人。此字段可能包含下列值:FIRST
人称表示说话者。SECOND
人称表示目标受众,即听话者。THIRD
人称表示非说话者/非听话者。REFLEXIVE_PERSON
指示,比方说,主宾相同,如“The cat licked itself”,其中“-self”加在代词后表示反身代词。在俄语和日语中,反身代词是一个独立的代词。(例如,“John loves himself”在俄语中为“Джон любит себя”,其中 себя 是不分性别的“self”;在日语中为“Tarō wa zibun o aisuru”(罗马化版本),其中“zibun”是不分性别的“self”。)请参见反身代词。
gender
表示名词的语法性别。此字段可能包含下列值:FEMININE
语法性别MASCULINE
语法性别NEUTER
语法性别
case
表示一个单词的语法格及其在短语或句子中的角色。此字段可能包含下列值:ACCUSATIVE
格指示及物动词的直接宾语。ADVERBIAL
格指示形容词的副词形式。请注意,英语使用不同的词来表示副词 ("well") 和形容词 ("good")。 在英语中,形容词加后缀“-ly”确实能衍生出副词(例如,“happy”与“happily”),但并不被视为“格”。COMPLEMENTIVE
格(中文)指示使采用连接结构的可能、描述性或结果性表达意义完整所需的词。DATIVE
格指示间接宾语,即接收直接宾语的指示物。在英语中,间接宾语通常通过介词“to”表示,如短语“He gave the ball to Bobby”,其中“Bobby”是间接宾语,是球的接收者。下面是个俄语示例:Иван дал книгу маше(伊万把书给了玛莎),其中“ -e”表示“маше”是间接宾语,而玛莎是书的接收者。GENITIVE
格指示所属关系。请注意,英语通常使用“-'s”词缀指示所有,而不是使用所有格。短语末尾可以附加“-'s”词缀(例如,“[The man who ran the bill up]’s wife paid a dear price for his excess.”)。而在此俄语示例中,“-а”将“Антон-”标记为属格:“Гдекнига Антона?”(安东的书在哪里)。俄语中,所有格亦作为“几个”、“少数”等词语的补语出现。例如:Зимой здесь мало снега(“冬天这里很少下雪”)中,“-a”使“снег-”(雪)成为了所有格,因为它是“мало”(“小”)的补语。不涉及所有格。INSTRUMENTAL
格指示名词是否是完成某个动作的工具。英语句子“He opened the door with a key”在俄语中为“он открыл дверь ключом”,其中“-om”附加在“ключ” (key) 后面表示工具格。LOCATIVE
格指示指代位置的单词。英语没有方位格。NOMINATIVE
格与动词的主语有关。在英语中,句子的主语是通过词序指示的。在句子“The girl won the race”中,短语“the girl”是主语,出现在动词“won”的左边。在俄语中,девушка (the/a girl) 可以出现在动词之前或之后:“девушка выиграла гонку”或“гонку выиграла девушка”,其中动词是 выиграла (won)。OBLIQUE
格指示一个单词用作动词或介词的宾语。PARTITIVE
格指示一个单词的“部分”或缺乏特定的同一性。英语中部分词的例子有“three of my friends”。在俄语中为“трое моих друзей”,其中“трое”指“three of”(而非“три друга”,其中“три”指“three”)。PREPOSITIONAL
格指示介词宾语。REFLEXIVE_CASE
指示动词的主语与宾语相同。大多数语言不使用反身格,因为这种用法是通过使用特殊的反身代词来表示的(例如“himself”,“myself”等)。RELATIVE_CASE
(中文)指示将名词与动词或形容词连接起来的关系从句的补语化成分。示例:工作[的]地方,便宜的餐馆。VOCATIVE
格通常在谈话时指示用于称呼某人或某事的名词。
tense
表示动词的语法时态,指示动词的提及在时间中的位置。请注意,tense
不同于aspect
,后者亦涉及动词与时间的关系,但侧重于时间流动特征,而不是其位置。在许多语言中,IMPERFECT
和PLUPERFECT
时态更准确地指代时和式的特定组合。此字段可能包含下列值:CONDITIONAL_TENSE
是更为流行的语态术语“条件语气”的另一种说法。(请参阅下面的CONDITIONAL_MOOD
。)FUTURE
表示将来发生的动作。请注意,在英语中,将来时通常通过在动词短语前添加单词“will”来表示。PAST
表示过去发生的动作。PRESENT
表示目前正在发生的动作。IMPERFECT
表示动作发生在过去,但没有在该时态的参照系下完成。请注意,在英语中,未完成时通常通过在过去式中添加动词的动名词形式来表示,如“I was walking”。未完成时事件发生在过去,但与过去时的区别是没有完成。PLUPERFECT
表示过去发生的动作,并且在那个时态参照系下完成了。举例来说,“I had walked”发生在过去,但在过去式的参照系下也是完成的。
aspect
表示动词的语法式,它表现时间流动。tense
侧重于动词在时间内的位置,aspect
与之不同,它侧重于发生时的时间流动特性。此字段可能包含下列值:PERFECTIVE
式表示因为完全发生在过去或将来而“完成”的事件。IMPERFECTIVE
式表示因为是连续的或者重复发生而未完成的事件。PROGRESSIVE
式表示连续的事件。进行式通常被视为较常见的未完成式(也包括重复)的特例。
mood
表示动词的语法语气,语气指示对标的动作的态度。此字段可能包含下列值:CONDITIONAL_MOOD
表示不一定的动作。请注意,在英语中,动词形式不是有条件的;而是通过将“would”与动词不定式结合起来指出有条件的行为。IMPERATIVE
通过第二人称表示命令或请求。INDICATIVE
表示事实的陈述,更常见的名称是“已然语气”。INTERROGATIVE
表示疑问。JUSSIVE
通过第一或第三人称表示命令或请求。英语并没有弱祈使语气,尽管以真正或暗示性的“Let us”开头的劝告表达了这种弱祈使语气。SUBJUNCTIVE
表示与行为有关的不确定性的质量,也称为“非已然”语气(与“已然”陈述语气形成对比)。英语没有特定的虚拟语气;而是用“want”、“wish”、“hope”等词语表达了虚拟语气的意思。
voice
表示动词的语法语态,即动作与主语和/或宾语之间的关系。此字段可能包含下列值:ACTIVE
语态指示正在执行动作的主语的动作。CAUSATIVE
语态表示正对主语产生影响的动作。在英语中,没有直接的使役语态;这种使役是通过使用动词“make”来表示的,如“Mom made me go to school”。PASSIVE
语态表示正对主语产生影响的动作。许多情况下,不说出或不知道动作的执行者。
reciprocity
表示一个单词的(通常是代词的)互指性,互指性指代词指代句子中其他地方出现的名词短语。此字段可能包含下列值:RECIPROCAL
指示代词是互指的。NON_RECIPROCAL
指示代词并非互指的。
proper
表示名词是否属于专有名称的一部分。请注意,许多专有名称由几个词组成;如果此短语被检测为专有名称,则每个词法单元亦会被检测为专有。(例如,专有名词“Wrigley Field”中的“Wrigley”和“Field”会将其专有特性设置为PROPER
。此字段可能包含下列值:PROPER
表示此词法单元属于专有名称的一部分。NOT_PROPER
表示此令牌不属于专有名称的一部分。
form
表示不能完美归入上文所述一组常见形式(tense
、mood
、person
等)的其他词法形式。大多数这些形式都针对特定语言。此字段可能包含下列值:ADNOMIAL
(韩语/日语)指示修饰名词短语的词尾(韩语)或动词(日语)。举例来说:을먹는사람[吃米饭的人]和書く人[书写的人]。AUXILIARY
(韩语)指示连接两个相邻的主和辅谓词的词尾:밥을 먹게 하다[使(某人)去吃]COMPLEMENTIZER
(韩语)指示连接两个或更多不同短语的词尾:밥을 먹고 물을 마신다 [ (I) 吃饭并喝水]FINAL_ENDING
(韩文/日文)指示附在短语或句子末尾完成短语或句子的词尾。 例如:밥을 먹는다 [(我)吃饭] 和手紙を書く [写信]。GERUND
(韩语/日语)表示名词化动词或形容词的词尾:(韩语)밥먹기[吃饭]或将动词与各种助动词连接起来的词尾:(日语)書きたい[想写]REALIS
(日语)用连词“ば”表示有条件和虚拟语气形式:書けば[如果(我)写]。IRREALIS
(日语)表示连接动词与负动词,被动动词或使役助动词: 書かない [别写],書かれる [将被写],書かせる [请(某人)写]。ORDER
(日语)表示命令动词,类似于祈使动词:書け! [写!]SPECIFIC
(日语)表示上述六类不能涵盖的特殊形式。这种形式最常见的用法是通过在此形式上添加后缀从形容词派生为名词:かわいさ[可爱]SHORT
(俄语)表示短式形容词或分词。LONG
(俄语)指示长式形容词或分词,与上述SHORT
式不同。
请注意,Natural Language API 提供每个令牌(而不是每个短语)的语态信息。可能不支持跨越字词边界的语态结构。
依存关系树
在语法请求中,词性和词法信息在响应的 partOfSpeech
字段中返回。
针对提供给 Natural Language API 进行语法分析的文本中的每个句子,该 API 构造描述该句子语法结构的依存关系树。语法信息在响应的 dependencyEdge
字段中返回。
一个句子的依存关系树图,摘自约翰·F·Kennedy 的就职演讲如下所示:
![](https://cloud.google.com/static/natural-language/docs/images/jfk-1961.png?authuser=9&hl=zh-cn)
就每个词法单元而言,dependencyEdge
元素标识它修饰的其他词法单元(在 headTokenIndex
字段中)以及此标记与其头词法单元(在 label
字段中)之间的语法关系。例如,以下是短语“your country”(您的国家/地区)(第一次出现)中的词法单元“your”(您的)的 dependencyEdge
元素:
"dependencyEdge": {
"headTokenIndex": 4,
"label": "POSS"
},
此元素指示“your”修饰第五个词法单元(headTokenIndex
使用了一个从零开始的偏移)并且它是一个所有格修饰语。
每个依存关系树都包含一个 ROOT
元素 ("label": ROOT
),它对应句子中的主要动词。在上面的例子中,ROOT
元素碰巧是句子中的第一个单词 ("headTokenIndex": 0
)。对于 ROOT
单词“Ask”(问),headTokenIndex
是其自己的索引。
尽管解析树不跨越句子边界,但 Natural Language API 会在整个文本中使用从零开始的偏移值来索引句子和令牌。
Natural Language API 使用适用于所支持的语言的一组通用依存关系来标记语法关系。 标签描述如下。在示例文本中,“Head”(头)和标签出现在它们所适用的令牌的下方。
标签 | 说明 |
---|---|
UNKNOWN |
未知关系 |
ABBREV |
头令牌的缩写。British Broadcasting Company (BBC) Head ABBREV |
ACOMP |
用作补语的形容词短语(如动词的宾语)。这种关系具体来说包括具有形容词谓语的“be”系动词结构。
The book looks heavy. Head ACOMP The book is heavy. Head ACOMP此标记亦适用于非参数形容词修饰语和带形容词谓词的提升结构。 She arrived sad. Head ACOMP I consider John intelligent. Head ACOMP |
ADVCL |
修饰动词的状语从句,如时间从句、后果、条件从句或目的从句。The accident happened as the night was falling. Head ADVCL If you know who did it, you should tell the teacher. ADVCL Head He talked to him in order to secure the account. Head ADVCL |
ADVPHMOD |
状语短语修饰词(日语) |
ADVMOD |
用于修饰单词含义的(非从句)副词或副词短语。Genetically modified food. ADVMOD Head less often ADVMOD Head About 200 people came to the party. ADVMOD Head |
AMOD |
用来修饰名词短语含义的形容词短语。Sam eats red meat. AMOD Head Sam took out a 3 million dollar loan. AMOD Head |
APPOS |
紧靠另一个名词短语右侧的名词短语,第二个短语用于定义或修饰第一个短语。Sam, my brother, arrived. Head APPOS Bill (John’s cousin) Head APPOS |
ATTR |
由复合动词引导的名词性短语。请注意,“ATTR”与“ACOMP”不同,因为依附者是名词性短语,而不是形容词。He is a doctor. Head ATTR She resembles her mother. Head ATTR疑问句中,疑问代词或疑问短语中的名词与“ROOT”处于“ATTR”关系。 What is your name? ATTR Head NSUBJ What breed is the dog? ATTR Head NSUBJ用名词性谓词提升结构也使用“ATTR”关系。 I consider John an intelligent person. Head ATTR |
AUX |
非主动词,例如情态助动词或迂回时态中的“be”、“do”或“`have”形式。不包括使用“be”作为被动结构中的助动词。Reagan has died. AUX Head He should leave. AUX Head |
AUXPASS |
被动语态的从句中的非主动词。Kennedy has been killed. AUX AUXPASS Head Kennedy was/got killed. AUXPASS Head |
CC |
连接的一个元素与并列连词的关系。连词的一个连接(通常第一个)视为连词的头。Bill is big and honest. Head CC They either ski or snowboard. Head CC Bill went to Florida but Jane traveled to Alaska. Head CC |
CCOMP |
具有内部主语的独立从句,其功能类似于动词或形容词的宾语。He says that you like to swim. Head CCOMP I am certain that he did it. Head CCOMP I admire the fact that you are honest. Head CCOMP |
CONJ |
通过“and”或“or”等并列连词连接的两个元素之间的关系。关系的头是第一个合取,其他连词通过“conj”关系依赖于该关系。Bill is big and honest. Head CONJ They either ski or snowboard. Head CONJ We have apples, pears, oranges, and bananas. DOBJ CONJ CONJ CONJ |
CSUBJ |
从句的从句性语法主语;即主语本身就是一个从句(下面例子中的“What she said”(她所说内容))。What she said makes sense. CSUBJ Head |
CSUBJPASS |
被动从句的从句性语法主语。That she lied was suspected by everyone. CSUBJ Head |
DEP |
系统无法确定两个单词之间更精确的依存关系。Then, as if to show that he could, . . . DEP Head travel agency florence kentucky Head DEP |
DET |
名词短语的头与其限定词之间的关系。The man is here. DET Head Which book do you prefer? DET Head |
DISCOURSE |
感叹词以及与句子结构没有明确关联的其他话语元素,采用表达性方式的情况除外。示例有:感叹词(“oh”(哦)、“uh-huh”(啊哈)、“'Welcome”(欢迎))、填充语(“um”(嗯)、“ah”(啊))和话语标记(“well”(好吧)、“like”(像)、“actually”(实际上),但“you know”(您知道)不是)。Iguazu is in Argentina :) Head DISCOURSE |
DOBJ |
名词短语是动词的([宾格](https://en.wikipedia.org/wiki/Accusative_case))宾语。She gave me a raise. Head DOBJ They win the lottery. Head DOBJ |
EXPL |
重复名词。在英语中,“it”和“there”有如下一些用法:在外位语结构中使用时存在“there”和“it”。当名词无法满足谓词的语义角色时,采用虚指或重复名词。在采用虚指词的语言中,它们可以放置在主语和直接宾客位置。There is a ghost in the room. EXPL Head NSUBJ It is clear that we should decline. EXPL Head |
GOESWITH |
链接文本中一个单词的分开两个部分。 |
IOBJ |
充当动词间接宾语[[与格]名词短语(https://en.wikipedia.org/wiki/Dative_case))。She gave me a present. Head IOBJ DOBJ |
MARK |
引导限定或非限定从属从句的单词,如“That”或“when”。头为从属从句的头。Forces engaged in fighting after insurgents attacked. MARK Head He says that you like to swim. MARK Head |
MWE |
用于组合的两个关系(与“NN”一起)中的一个。它用于某些固定的语法化表达,其中多个虚词起一个虚词的作用。多字词表达以扁平的头初始结构注释,其中表达中的所有单词使用“MWE”标签修饰第一个单词。I like dogs as well as cats. Head MWE MWE He cried because of you. Head MWE |
MWV |
多字词口头表达。 |
NEG |
否定词与它所修饰的词之间的关系。Bill is not a scientist. Head NEG Bill is no scientist. NEG Head |
NN |
用来修饰头名词的任何名词。phone book NN Head oil price futures NN NN Head |
NPADVMOD |
用作状语的名词短语。The director is 65 years old. NPADVMOD Head Six feet long NPADVMOD Head Shares eased a fraction. HEAD NPADVMOD The silence is itself significant. NPADVMOD Head 90% of Australians like him, the most of any country. Head NPADVMOD |
NSUBJ |
充当从句语法主语的名词短语。Clinton defeated Dole. NSUBJ Head The baby is cute NSUBJ Head |
NSUBJPASS |
充当被动从句语法主语的名词短语。Dole was defeated by Clinton. NSUBJPASS Head |
NUM |
用数量修饰名词的含义的任何数字短语。Sam ate three sheep. NUM Head |
NUMBER |
数字短语的一部分。I have four thousand sheep. NUMBER Head |
P |
从句中的任何标点符号。 |
PARATAXIS |
并列关系(来自希腊语的“平列”)是单词(通常是句子的主谓词)与其他并排放置的元素之间的关系,与头名词不具有明确的对等、从属或参数关系。并列是一种类似话语的对等。Let's face it we're annoyed. Head PARATAXIS The guy, John said, left early in the morning. PARATAXIS Head |
PARTMOD |
分词修饰语 |
PCOMP |
当介词的补语是从句或介词短语(偶尔是副词短语)时使用。We have no information on whether users are at risk. Head PCOMP They heard about you missing classes. Head PCOMP |
POBJ |
介词或副词“here”和“there”之后的名词短语的头。I sat on the chair. Head POBJ What does CPR stand for? POBJ Head |
POSS |
物主限定词或[所有格](https://en.wikipedia.org/wiki/Genitive_case)修饰词。their offices POSS Head Bill’s clothes. POSS Head |
POSTNEG |
动词后否定助词 |
PRECOMP |
谓词补语 |
PRECONJ |
出现在开头与连词一起使用的词,例如“either”、“both”、“neither”。Both the boys and the girls are here. PRECONJ Head |
PREDET |
位于名词短语限定词之前并修饰其意义的单词。All the boys are here. PREDET Head |
PREF |
前缀 |
PREP |
用于修饰动词、形容词、名词乃至其他介词含义的任何介词短语。I saw a cat in a hat. Head PREP I saw a cat with a telescope. Head PREP He is responsible for meals. Head PREP |
PRONL |
动词和动语素之间的关系(法语) |
PRT |
动词小词。They shut down the station. Head PRT He would not put up with it. Head PRT |
PS |
关联或所有标记 |
QUANTMOD |
量词短语修饰语 |
RCMOD |
从名词到动词的连接,引导一个关系从句。I saw the man you love. Head RCMOD the book that you bought Head RCMOD Bell, a company which is based in LA, makes and distributes computer products. Head RCMOD |
RCMODREL |
关系从句中的补语化成分(中文) |
RDROP |
前面无谓词的省略号(日语) |
REF |
指代(印地语) |
REMNANT |
用于省略号。John won bronze, Mary silver, and Sandy gold. Head REMNANT REMNANT |
REPARANDUM |
表示会话修补中的不连贯覆写。Go to the righ- to the left. REPARANDUM Head |
ROOT |
句子的根。在绝大多数情况下,它是一个动词。 |
SNUM |
指定数字单位的后缀(日语) |
SUFF |
后缀 |
TMOD |
光杆名词短语成分,通过指定时间来修改该成分的含义。“TMOD”捕获时间点和持续时间;它不捕获重复(“两次”,会是“NPADVMOD”)。Last night, I swam in the pool. TMOD Head |
TOPIC |
主题标记(中文) |
VMOD |
以动词不定式开头的从句。Berries gathered on this side of the mountain are sweeter. Head VMOD He sat in the armchair reading the morning newspaper. Head VMOD I have nothing to say to them. Head VMOD |
VOCATIVE |
标记文本中面向的对话参与者(在电子邮件和新闻组发布中常见)。Anna, can you bring a tent? VOCATIVE Head |
XCOMP |
没有自己的主语的从句补语,其提及由外部主语决定。He says that you like to swim. Head XCOMP I am ready to leave. Head XCOMP |
SUFFIX |
名称后缀 |
TITLE |
职位名称 |
AUXCAUS |
使役助动词(日语) |
AUXVV |
助动词(日语) |
DTMOD |
Rentaishi(名词前修饰语) |
FOREIGN |
外来词 |
KW |
关键字 |
LIST |
一系列可比项目列表 |
NOMC |
名词性从句 |
NOMCSUBJ |
名词性从句主语 |
NOMCSUBJPASS |
名词性从句被动语态 |
NUMC |
数字修饰词组合(日语) |
COP |
系动词(西班牙文) |
DISLOCATED |
错位关系(针对前移/主题化元素) |
ASP |
式标记 |
GMOD |
所有格修饰语 |
GOBJ |
所有格宾语 |
INFMOD |
不定式修饰语 |
MES |
衡量 |
NCOMP |
名词的名词性补语 |
有关依从关系树的更多信息,请参阅通用依从关系树库项目。 此外,多语言处理的通用依存关系注释包含用于解读此依存关系树的方法的背景信息。
解析语法分析响应
下面的伪代码提供对语法分析响应执行迭代操作时使用的通用模式:
index = 0 for sentence in self.sentences: content = sentence['text']['content'] sentence_begin = sentence['text']['beginOffset'] sentence_end = sentence_begin + len(content) - 1 while index < len(self.tokens) and self.tokens[index]['text']['beginOffset'] <= sentence_end: # This token is in this sentence index += 1