日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【NLP】NLP中的消歧

發(fā)布時間:2025/3/12 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NLP】NLP中的消歧 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者 | Nesrine Sfar

編譯 | VK
來源 | Towards Data Science

如果你點開這篇文章,這意味著你有足夠的好奇心去學習關于NLP/NLU中解決歧義的不同方法。

背景信息是機器產(chǎn)生歧義的原因。這種模棱兩可的信息來源于人類在交流中使用的自然語言。將這種語言“翻譯”時可能會產(chǎn)生歧義。這可以用人類語言本身固有的不正式和模棱兩可來解釋。

傳統(tǒng)的方法是基于詞向量化。這里顯示的替代方法是基于知識圖。

本教程將通過一個簡單方便的應用程序,即自然語言API(nl api),重點介紹一些可以用來解決這個問題的方法。

機器無法解釋或理解文本;要解決語言歧義,就需要對文本進行多層次的語言分析。處理歧義的現(xiàn)象稱為“消歧”。這是幫助機器檢測文本意義(語義)的過程。詞義的確定要考慮語境、句法和詞語之間的關系。


下面的文章將強調(diào)不同的方法,可以用來幫助機器減少歧義,如詞形還原,詞性標注等。

這項工作將基于一個名為expert.ai NL的API。

Expert.ai NL API

Expert.ai NL API是一個能夠通過幾行代碼在文本中提供多層次信息的應用程序。

為了構建NLP模塊,API提供了深入的語言處理技術。它可以進行深層語言分析,例如token化、詞形還原、詞性標注、形態(tài)/句法/語義分析。

除此之外,該庫還可以解決命名實體識別、實體間的語義關系和情感分析等問題。

1.如何使用Expert.ai NL API for Python?

庫的安裝

首先,你需要使用以下命令安裝客戶端庫:

pip?install?expertai-nlapi

一旦你在developer.expert.ai網(wǎng)站上創(chuàng)建了賬號,API就可用了。Python客戶端代碼將開發(fā)人員帳戶指定為環(huán)境變量:

  • Linux操作系統(tǒng):

export?EAI_USERNAME=YOUR_USER export?EAI_PASSWORD=YOUR_PASSWORD
  • windows:

SET?EAI_USERNAME=YOUR_USER SET?EAI_PASSWORD=YOUR_PASSWORD

你的用戶是你在注冊期間指定的電子郵件地址。

你還可以在代碼中定義:

import?os os.environ["EAI_USERNAME"]?=?'YOUR_USER' os.environ["EAI_PASSWORD"]?=?'YOUR_PASSWORD'

2.深層語言分析

語言學把語言分析分成不同的部分。所有這些分支都是相互依存的,語言中的一切都是相互聯(lián)系的。

對文檔進行多級文本分析;每一個文本被分成句子,這些句子被解析成token、詞形和詞性,尋找句法成分和謂詞之間的關系,并解釋語法以構建完整的依賴樹。

要檢索這些信息,首先要導入庫的client:

from?expertai.nlapi.cloud.client?import?ExpertAiClient client?=?ExpertAiClient()

讓我們舉一個例子來說明這些操作:

"Sophia is a social humanoid robot developed by Hong Kong-based company Hanson Robotics. Sophia was activated on February 14, 2016.”

a.文本細分

這個操作允許將文本從最長的形式劃分到最小的形式,在這種情況下,可以是段落、句子,短語,token。當token是一個搭配(復合詞)時,文本細分可以在分析中得到更深入的分析,直到它不能被進一步細分的原子級。

導入庫并實例化客戶端后,應設置文本語言和API參數(shù):

text?=?"Sophia?is?a?social?humanoid?robot?developed?by?Hong?Kong-based?company?Hanson?Robotics.?Sophia?was?activated?on?February?14,?2016."? language=?'en'output?=?client.specific_resource_analysis(body={"document":?{"text":?text}},?params={'language':?language,?'resource':?'disambiguation' })

在API請求中,應該在主體中提到要分析的句子,在參數(shù)中提到要分析的語言。資源參數(shù)與你需要對文本執(zhí)行的操作有關,例如,消除歧義。

這種多層次的文本分析通常分為三個階段:

1.詞法分析:一個文本細分階段,允許將文本分解為基本實體(token)。

2.句法分析:包括識別構成句法實體的詞素組合(包括詞性標注)。

3.語義分析:消歧是在這個層次上進行的,它根據(jù)交際語境和它們之間可能的關系來檢測這些實體的意義。

詞匯分析從第一部分開始:

#?我們使用元素output.paragraphs分成幾個段落 #?start和end是分析文本中段落的位置 for?paragraph?in?output.paragraphs:print?(f'Paragraphs:{text[paragraph.start:paragraph.end]:{20}}') Paragraphs:?Sophia?is?a?social?humanoid?robot?developed?by?Hong?Kong-based?company?Hanson?Robotics.?Sophia?was?activated?on?February?14,?2016.

因為我們的文本已經(jīng)是一個段落(這里是兩句話),所以細分的輸出提供了與輸入相同的文本。讓我們嘗試將段落分成句子級別,在本例中,我們只需要將元素.paragraphs修改為.sentences。最常見的分隔句子的方法是用點(.):

#?我們使用output.sentences把文本細分成句子 #?start和end是所分析文本中句子的位置 for?sentence?in?output.sentences:print?(f'Sentences:{text[sentence.start:sentence.end]:{20}}') Sentences:?Sophia?is?a?social?humanoid?robot?developed?by?Hong?Kong-based?company?Hanson?Robotics. Sentences:?Sophia?was?activated?on?February?14,?2016.

結果我們得到了兩句話。讓我們更深入地進行細分,以檢索短語級別。我們使用與上面相同的方法,用.phrases,得到:

#?我們使用output.sentences把文本細分成短語 #?start和end是所分析文本中短語的位置 for?phrase?in?output.phrases:print?(f'Phrases:{text[phrase.start:phrase.end]:{20}}') Phrases:?Sophia?????????????? Phrases:?is?a?social?humanoid?robot Phrases:?developed??????????? Phrases:?by?Hong?Kong-based?company?Hanson?Robotics Phrases:.??????????????????? Phrases:?Sophia?????????????? Phrases:?was?activated??????? Phrases:?on?February?14,?2016 Phrases:.

我們注意到,我們得到更多的元素。我們還可以得到文本中短語的數(shù)量:

#?數(shù)量 print("phrases?array?size:?",?len(output.phrases)) phrases?array?size:??10

b.token化

此外,我們可以將短語級別分解為更小的單位,即token。這是“token化”任務,在NLP中非常常見。它幫助機器理解文本。要使用Python執(zhí)行token化,我們可以使用.split函數(shù),如下所示:

例如,考慮以下句子:

text?=?"CNBC?has?commented?on?the?robot's??lifelike?skin?and?her?ability?to?emulate?more?than?60?facial?expressions."tokens?=?text.split() print('These?are?the?tokens?of?the?sentence',?tokens) These?are?the?tokens?of?the?sentence?['CNBC',?'has',?'commented',?'on',?'the',?"robot's",?'lifelike',?'skin',?'and',?'her',?'ability',?'to',?'emulate',?'more',?'than',?'60',?'facial',?'expressions.']

如果不在split中指定分隔符,文本將按空格分隔。

通過expert.ai NL API,我們還可以執(zhí)行token化,并提供其他特性。換句話說,API提供了不同的級別token分析;API產(chǎn)生的token可以是單詞、字符(如縮寫)甚至標點符號。

讓我們看看如何使用API執(zhí)行此任務,我們使用與上面相同的過程,使用.tokens修改element.phrases:

text?=?"CNBC?has?commented?on?the?robot's??lifelike?skin?and?her?ability?to?emulate?more?than?60?facial?expressions."? language=?'en'output?=?client.specific_resource_analysis(body={"document":?{"text":?text}},?params={'language':?language,?'resource':?'disambiguation' })#?打印到句子內(nèi)的token print?(f'{"TOKEN":{20}}?') print?(f'{"----":{20}}')?#?我們使用元素output.tokens將文本細分為token #?start和end是所分析文本中token的位置 for?token?in?output.tokens:print?(f'{text[token.start:token.end]:{20}}') TOKEN???????????????? ----???????????????? CNBC???????????????? has????????????????? commented??????????? on?????????????????? the????????????????? robot??????????????? 's?????????????????? lifelike???????????? skin???????????????? and????????????????? her????????????????? ability????????????? to?????????????????? emulate????????????? more???????????????? than???????????????? 60?????????????????? facial?expressions?? .

我們注意到,這些token要么是像skin , ability, emulate這樣的單詞,要么是像‘s、60”這樣的縮寫,甚至是像點.這樣的標點符號。

token化會導致搭配,這在split函數(shù)中是不可能的。該API能夠根據(jù)單詞和上下文的位置檢測句子內(nèi)的復合詞。這種搭配還可以進一步劃分為原子級,原子級是我們可以擁有的最后一個單位:

for?token?in?output.tokens:print?(f'{text[token.start:token.end]:{20}}')#?我們對token數(shù)組進行迭代,將復合詞細分為原子級for?atom?in?token.atoms:print?(f'\t?atom:{text[atom.start:atom.end]:{20}}') CNBC???????????????? has????????????????? commented??????????? on?????????????????? the????????????????? robot??????????????? 's?????????????????? lifelike???????????? skin???????????????? and????????????????? her????????????????? ability????????????? to?????????????????? emulate????????????? more???????????????? than???????????????? 60?????????????????? facial?expressions??atom:?facial??????????????atom:?expressions????????? .

c.詞性標注

token化導致了自然語言處理中的第二個過程,即詞性標注(詞性標注)。在這一階段,我們引入句法分析,其中包括詞性標注任務。后者包括為每個token分配一個POS或一個語法類。

POS描述了每個token的句法性質(zhì)。這些標簽可以反映文本的一部分含義。我們可以列出英語語言中常用的幾種詞性:限定詞、名詞、副詞、動詞、形容詞、介詞、連詞、代詞、感嘆詞……

一個詞與其他詞有相同的形式(同形異義詞)可能有不同的含義(多義詞)。這個詞可以有不同的位置,即使它有相同的形式。語法類別取決于單詞在文本中的位置及其上下文。讓我們考慮這兩句話:

The object of this exercise is to raise money for the charity.
A lot of people will object to the book.

從語言學的角度來看,在第一個句子中,object是名詞,而在第二個句子中,object是動詞。詞性標注是消除歧義的關鍵步驟。根據(jù)這種標注,單詞的含義可以從上下文、單詞的形式(例如,專有名詞開頭的大寫字母)、位置(SVO詞序)等推斷出來。

讓我們嘗試使用API為前兩句生成詞性標注:

from?expertai.nlapi.cloud.client?import?ExpertAiClient client?=?ExpertAiClient()

我們首先導入庫并創(chuàng)建客戶端,如下所示:

object_noun表示object是名詞的句子,object_verb表示object是動詞的句子:

object_noun?=?"The?object?of?this?exercise?is?to?raise?money?for?the?charity." object_verb?=?"A?lot?of?people?will?object?to?the?book."

單詞object在兩個句子中的形式相同,但位置不同。

首先,我們指定要進行詞性標注的文本,對于第一個句子,它是object_noun,對于第二個句子,它是object_verb。如下所示:

#?第一句話 object_noun?=?"The?object?of?this?exercise?is?to?raise?money?for?the?charity." #?第二句 object_verb?=?"A?lot?of?people?will?object?to?the?book." language?=?'en' #?請求第一句話的API output?=?client.specific_resource_analysis(body={"document":?{"text":?object_noun}},?params={'language':?language,?'resource':?'disambiguation' })#?請求第二句話的API output_2?=?client.specific_resource_analysis(body={"document":?{"text":?object_verb}},?params={'language':?language,?'resource':?'disambiguation' })

一旦我們設置了這些參數(shù),就需要對token進行迭代,分別為每個示例分配一個POS;

#?第一句的POS print?(f'\t?\033[1mOutput?of?the?first?sentence?:?\033[0m?\n')? #?在輸出數(shù)組的開始部分以粗體打印TOKEN和POS: print?(f'\033[1m{"TOKEN":{20}}?{"POS":{6}}\033[0m')#?迭代token,并為第一個句子的每個token分配POS for?token?in?output.tokens:print?(f'{object_noun[token.start:token.end]:{20}}?{token.pos:{6}}')#?第二句的POS print?(f'\t?\033[1mOutput?of?the?second?sentence?:?\033[0m?\n')? #?在輸出數(shù)組的開始部分以粗體打印TOKEN和POS: print?(f'\033[1m{"TOKEN":{20}}?{"POS":{6}}\033[0m')#?迭代token,并為第一個句子的每個token分配POS for?token?in?output_2.tokens:print?(f'{object_verb[token.start:token.end]:{20}}?{token.pos:{6}}') ???????Output?of?the?first?sentence?:??TOKEN????????????????POS??? The??????????????????DET??? object???????????????NOUN?? of???????????????????ADP??? this?????????????????DET??? exercise?????????????NOUN?? is???????????????????VERB?? to???????????????????PART?? raise????????????????VERB?? money????????????????NOUN?? for??????????????????ADP??? the??????????????????DET??? charity??????????????NOUN?? .????????????????????PUNCT?Output?of?the?second?sentence?:??TOKEN????????????????POS??? A?lot?of?????????????ADJ??? people???????????????NOUN?? will?????????????????AUX??? object???????????????VERB?? to???????????????????ADP??? the??????????????????DET??? book?????????????????NOUN?? .????????????????????PUNCT

一方面,賓語確實是一個名詞,前面是冠詞/限定詞(DET)。另一方面,賓語實際上是句子的動詞,它把主語“很多人”和賓語“書”聯(lián)系起來。

NLP中使用的傳統(tǒng)詞性標注工具通常使用相同類型的信息來標注文本中的單詞:其上下文和詞形。expert.Ai-NL-API中詞性標注的獨特之處不僅在于為每個token識別一個語法標簽,還在于介紹其含義。

換言之,一個詞可以和其他詞有相同的形式,但它包含多種含義(多義詞)。每一個意義都在一個概念中表達,與其他概念聯(lián)系起來,形成一個知識圖。上面看到的單詞object有不止一個含義,因此,它屬于不同的語義概念,我們在expert.ai NL API的知識圖中稱之為“Syncons”。詞性標注可以揭示同一個詞的不同標簽,從而產(chǎn)生不同的意義。

#?object_noun的Concept_ID print?(f'\t?\033[1mConcept_ID?for?object?when?NOUN?\033[0m?\n')?#?在輸出數(shù)組的開始部分以粗體打印TOKEN、POS和ID: print?(f'\033[1m{"TOKEN":{20}}?{"POS":{15}}?{"ID":{6}}\033[0m')#?Syncon代表“概念”,我們用一個ID來表示 for?token?in?output.tokens:print?(f'{object_noun[token.start:token.end]:{20}}?{token.pos:{15}}?{token.syncon:{6}}?')#?object_verb的Concept_ID print?(f'\t?\033[1mConcept_ID?for?object?when?VERB?\033[0m?\n')?#?在輸出數(shù)組的開始部分以粗體打印TOKEN、POS和ID: print?(f'\033[1m{"TOKEN":{20}}?{"POS":{15}}?{"ID":{6}}\033[0m')#?Syncon代表“概念”,我們用一個ID來表示 for?token?in?output_2.tokens:print?(f'{object_verb[token.start:token.end]:{20}}?{token.pos:{15}}?{token.syncon:{6}}?') ????????Concept_ID?for?object?when?NOUN??TOKEN????????????????POS?????????????ID???? The??????????????????DET?????????????????-1? object???????????????NOUN?????????????26946? of???????????????????ADP?????????????????-1? this?????????????????DET?????????????????-1? exercise?????????????NOUN?????????????32738? is???????????????????VERB?????????????64155? to???????????????????PART????????????????-1? raise????????????????VERB?????????????63426? money????????????????NOUN?????????????54994? for??????????????????ADP?????????????????-1? the??????????????????DET?????????????????-1? charity??????????????NOUN??????????????4217? .????????????????????PUNCT???????????????-1?Concept_ID?for?object?when?VERB??TOKEN????????????????POS?????????????ID???? A?lot?of?????????????ADJ??????????????83474? people???????????????NOUN?????????????35459? will?????????????????AUX?????????????????-1? object???????????????VERB?????????????65789? to???????????????????ADP?????????????????-1? the??????????????????DET?????????????????-1? book?????????????????NOUN?????????????13210? .????????????????????PUNCT???????????????-1

可以注意到,名詞對象屬于ID為26946的概念。這個概念包括其他具有相同含義的詞(同義詞)。相比之下,它在第二句中的同形異義詞與ID 65789有關。這些ID是知識圖中每個概念的token。

因此,不同的詞性導致不同的意思,即使我們有相同的詞形。

請注意,以-1作為ID的單詞,如ADP(Adposition指介詞和后置詞)、PUNCT(表示標點符號)、DET(表示限定詞)等,在知識圖中不可用,因為它們不是固有的語義。

d.詞形還原

這是自然語言處理中的另一個核心任務,稱為詞形還原。它與token化和詞性標注一樣重要。

簡而言之,詞形還原將每個token還原為它的規(guī)范形式:

  • 動詞的不定式:wore, worn -> wear / ran, running, runs -> run

  • 名詞的單數(shù)形式:mice -> mouse / die -> dice

  • 等等。…

概念通常可以包含許多詞形。在消歧過程中,文本中的每個token都返回到其基本形式。每個詞形都與知識圖中的一個概念相關聯(lián)。因此,詞形還原可以將不同的token集簡化為不同的詞形集。這可以通過這個例子來解釋;

起初,“living”這個詞的聽者幾乎是無意識地能辨別出這個詞的意思。這對于人類來說是可能的,因為人類可以根據(jù)世界的知識等做出推論。如果沒有上下文,這對于機器來說是不可能的。

為了使機器能夠預測出一個單詞在相同拼寫和相同發(fā)音的情況下產(chǎn)生的幾種意義,詞形還原是處理這種詞匯歧義的關鍵。

我們可以使用expert.ai NL API執(zhí)行此任務。讓我們考慮以下兩個例子:

She’s living her best life. What do you do for a living?

living_from_live?=?"She's?living?her?best?life" living_from_living?=?"What?do?you?do?for?a?living?"language?=?'en'#?請求API output?=?client.specific_resource_analysis(body={"document":?{"text":?living_from_live?}},?params={'language':?language,?'resource':?'disambiguation' })#?請求API output_2?=?client.specific_resource_analysis(body={"document":?{"text":?living_from_living?}},?params={'language':?language,?'resource':?'disambiguation' })#?在輸出數(shù)組的開始部分以粗體打印TOKEN、POS和ID: print?(f'\t?\033[1mOuput?of?the?first?sentence?:?\033[0m?\n')? print?(f'\033[1m{"TOKEN":{20}}?{"LEMMA":{15}}?{"POS":{6}}?\033[0m')#Syncon代表“概念”,我們用一個ID來表示 for?token?in?output.tokens:print?(f'{living_from_live?[token.start:token.end]:{20}}?{token.lemma:{15}}?{token.pos:{6}}?')print?(f'\t?\033[1mOuput?of?the?second?sentence?:?\033[0m?\n')??? print?(f'\033[1m{"TOKEN":{20}}?{"LEMMA":{15}}?{"POS":{6}}?\033[0m') for?token?in?output_2.tokens:print?(f'{living_from_living?[token.start:token.end]:{20}}?{token.lemma:{15}}?{token.pos:{6}}?') ????????Output?of?the?first?sentence?:??TOKEN????????????????LEMMA???????????POS???? She??????????????????she?????????????PRON??? 's???????????????????'s??????????????AUX???? living???????????????live????????????VERB??? her??????????????????her?????????????PRON??? best?????????????????good????????????ADJ???? life?????????????????life????????????NOUN???Output?of?the?second?sentence?:??TOKEN????????????????LEMMA???????????POS???? What?????????????????what????????????PRON??? do???????????????????do??????????????AUX???? you??????????????????you?????????????PRON??? do???????????????????do??????????????VERB??? for??????????????????for?????????????ADP???? a????????????????????a???????????????DET???? living???????????????living??????????NOUN??? ?????????????????????????????????????PUNCT

如上所述,“l(fā)iving”有兩個不同的詞形,這取決于上下文及其在句子中的位置。在第一個例子中,living對應于詞形live,live是句子的動詞。相反,living在第二句中是一個名詞,有詞形living。意思也不同,第一個詞形描述的是“活著”的概念,而另一個是一個名詞屬于“一種收入或謀生手段”的概念。

因此,詞形還原有助于機器推斷同形詞的意義。



結論

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統(tǒng)計學習方法》的代碼復現(xiàn)專輯 AI基礎下載機器學習的數(shù)學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【NLP】NLP中的消歧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日精品 | 三级黄色网 | 97视频国产 | 免费中文字幕在线观看 | 91你懂的| 欧美日韩免费看 | 亚欧洲乱码视频 | 97se亚洲国产综合在线 | 麻豆免费在线观看视频 | 欧美性黄色 | 国产地址 | 国产动漫av | 亚洲色图 美腿丝袜 | 久久久精品蜜桃 | 亚洲高清在线观看 | 黄片毛片在线 | 萌白酱在线观看 | 亚洲免费在线 | 亚洲国产精品久久久久婷蜜芽 | 国产女同视频 | 少妇熟女一区二区三区 | 闺蜜张开腿让我爽了一夜 | 国产精品电影一区二区 | 丁香激情五月少妇 | tube国产麻豆 | 国产亚洲精品美女久久久 | 波多野结衣视频网址 | 中文字幕avav | 亚洲成人自拍网 | 中文字幕欧美激情 | 欧美无砖砖区免费 | 成人黄色网页 | 17c国产精品一区二区 | 亚洲综合免费观看高清完整版 | 黄色a级片 | 香蕉久久久久久 | 免费中文字幕日韩 | 成人免费毛片高清视频 | 一区二区视频网站 | 99re6热在线精品视频播放 | 综合久久2o19| 久久性生活视频 | 欧美综合自拍亚洲综合图片区 | 国产一区综合 | www.国产黄色 | 国产高清视频免费在线观看 | 日韩av动漫 | 国产男男gay体育生网站 | 国产黄色免费在线观看 | 日韩乱码在线 | 国产精品一级片在线观看 | 久久国产这里只有精品 | 国产精品4p | 国产精品成人在线 | 日本特黄特色aaa大片免费 | 69人妻精品久久无人专区 | 久久精品视频免费 | 亚洲av无码不卡一区二区三区 | 成人网在线观看 | 国产精品久久久久影院 | 一本久道综合色婷婷五月 | 国产主播第一页 | 亚洲国产精品久久AV | 91麻豆蜜桃一区二区三区 | 中文亚洲欧美 | 久久久久久免费精品 | 国产又爽又猛又粗的视频a片 | 久久久久久日产精品 | 少妇人妻真实偷人精品视频 | 国产精品少妇 | caopeng在线视频 | 成人黄色小视频 | 日本三级日本三级日本三级极 | 国产一区二 | 特级毛片在线观看 | 午夜激情网站 | 日韩一区二区毛片 | 女的高潮流时喷水图片大全 | 黄色a一片 | 18禁裸男晨勃露j毛免费观看 | 久久免费福利视频 | 亚洲精品一区二区三区婷婷月 | 日韩欧美在线不卡 | 粉嫩av在线 | 91一区 | 亚洲第一页在线观看 | 亚洲春色在线 | 91中文字幕永久在线 | 国产第一页在线播放 | 国产成人亚洲精品无码h在线 | 黄色大片网站在线观看 | 青春草网站 | a∨色狠狠一区二区三区 | 亚洲AV无码一区二区三区性 | 国产女主播喷水高潮网红在线 | 一区av在线| 人妖粗暴刺激videos呻吟 | 国产涩涩| 成人激情久久 |