最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python自然語言處理 NLTK 庫用法入門教程【經(jīng)典】

 更新時(shí)間:2018年06月26日 10:33:51   作者:hzp666  
這篇文章主要介紹了Python自然語言處理 NLTK 庫用法,結(jié)合實(shí)例形式詳細(xì)分析了NLTK庫的功能、安裝、引用以及使用NLTK庫進(jìn)行文本分析的各種常用操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python自然語言處理 NLTK 庫用法。分享給大家供大家參考,具體如下:

在這篇文章中,我們將基于 Python 討論自然語言處理(NLP)。本教程將會(huì)使用 Python NLTK 庫。NLTK 是一個(gè)當(dāng)下流行的,用于自然語言處理的 Python 庫。

那么 NLP 到底是什么?學(xué)習(xí) NLP 能帶來什么好處?

簡單的說,自然語言處理( NLP )就是開發(fā)能夠理解人類語言的應(yīng)用程序和服務(wù)。

我們生活中經(jīng)常會(huì)接觸的自然語言處理的應(yīng)用,包括語音識(shí)別,語音翻譯,理解句意,理解特定詞語的同義詞,以及寫出語法正確,句意通暢的句子和段落。

NLP的作用

正如大家所知,每天博客,社交網(wǎng)站和網(wǎng)頁會(huì)產(chǎn)生數(shù)億字節(jié)的海量數(shù)據(jù)。

有很多公司熱衷收集所有這些數(shù)據(jù),以便更好地了解他們的用戶和用戶對(duì)產(chǎn)品的熱情,并對(duì)他們的產(chǎn)品或者服務(wù)進(jìn)行合適的調(diào)整。

這些海量數(shù)據(jù)可以揭示很多現(xiàn)象,打個(gè)比方說,巴西人對(duì)產(chǎn)品 A 感到滿意,而美國人卻對(duì)產(chǎn)品 B 更感興趣。通過NLP,這類的信息可以即時(shí)獲得(即實(shí)時(shí)結(jié)果)。例如,搜索引擎正是一種 NLP,可以在正確的時(shí)間給合適的人提供適當(dāng)?shù)慕Y(jié)果。

但是搜索引擎并不是自然語言處理(NLP)的唯一應(yīng)用。還有更好更加精彩的應(yīng)用。

NLP的應(yīng)用

以下都是自然語言處理(NLP)的一些成功應(yīng)用:

  • 搜索引擎,比如谷歌,雅虎等等。谷歌等搜索引擎會(huì)通過NLP了解到你是一個(gè)科技發(fā)燒友,所以它會(huì)返回科技相關(guān)的結(jié)果。
  • 社交網(wǎng)站信息流,比如 Facebook 的信息流。新聞饋送算法通過自然語言處理了解到你的興趣,并向你展示相關(guān)的廣告以及消息,而不是一些無關(guān)的信息。
  • 語音助手,諸如蘋果 Siri。
  • 垃圾郵件程序,比如 Google 的垃圾郵件過濾程序 ,這不僅僅是通常會(huì)用到的普通的垃圾郵件過濾,現(xiàn)在,垃圾郵件過濾器會(huì)對(duì)電子郵件的內(nèi)容進(jìn)行分析,看看該郵件是否是垃圾郵件。

NLP庫

現(xiàn)在有許多開源的自然語言處理(NLP)庫。比如:

  • Natural language toolkit (NLTK)
  • Apache OpenNLP
  • Stanford NLP suite
  • Gate NLP library

自然語言工具包(NLTK)是最受歡迎的自然語言處理(NLP)庫。它是用 Python 語言編寫的,背后有強(qiáng)大的社區(qū)支持。

NLTK 也很容易入門,實(shí)際上,它將是你用到的最簡單的自然語言處理(NLP)庫。

在這個(gè) NLP 教程中,我們將使用 Python NLTK 庫。在開始安裝  NLTK 之前,我假設(shè)你知道一些 Python入門知識(shí)。

安裝 NLTK

如果你使用的是 Windows , Linux 或 Mac,你可以 使用PIP 安裝NLTK: # pip install nltk。

在本文撰寫之時(shí),你可以在 Python 2.7 , 3.4 和 3.5 上都可以使用NLTK。或者可以通過獲取tar 進(jìn)行源碼安裝。

要檢查 NLTK 是否正確地安裝完成,可以打開你的Python終端并輸入以下內(nèi)容:Import nltk。如果一切順利,這意味著你已經(jīng)成功安裝了 NLTK 庫。

一旦你安裝了 NLTK,你可以運(yùn)行下面的代碼來安裝 NLTK 包:

import nltk
nltk.download()

這將打開 NLTK 下載器來選擇需要安裝的軟件包。

你可以選擇安裝所有的軟件包,因?yàn)樗鼈兊娜萘坎淮螅詻]有什么問題?,F(xiàn)在,我們開始學(xué)習(xí)吧!

使用原生 Python 來對(duì)文本進(jìn)行分詞

首先,我們將抓取一些網(wǎng)頁內(nèi)容。然后來分析網(wǎng)頁文本,看看爬下來的網(wǎng)頁的主題是關(guān)于什么。我們將使用 urllib模塊來抓取網(wǎng)頁:

import urllib.request
response = urllib.request.urlopen('http://php.net/')
html = response.read()
print (html)

從打印輸出中可以看到,結(jié)果中包含許多需要清理的HTML標(biāo)記。我們可以用這個(gè)  BeautifulSoup 庫來對(duì)抓取的文本進(jìn)行處理:

from bs4 import BeautifulSoup
import urllib.request
response = urllib.request.urlopen('http://php.net/')
html = response.read()
soup = BeautifulSoup(html,"html5lib")
text = soup.get_text(strip=True)
print (text)

現(xiàn)在,我們能將抓取的網(wǎng)頁轉(zhuǎn)換為干凈的文本。這很棒,不是么?

最后,讓我們通過以下方法將文本分詞:

from bs4 import BeautifulSoup
import urllib.request
response = urllib.request.urlopen('http://php.net/')
html = response.read()
soup = BeautifulSoup(html,"html5lib")
text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
print (tokens)

詞頻統(tǒng)計(jì)

現(xiàn)在的文本相比之前的 html 文本好多了。我們?cè)偈褂?Python NLTK 來計(jì)算每個(gè)詞的出現(xiàn)頻率。NLTK 中的FreqDist( ) 函數(shù)可以實(shí)現(xiàn)詞頻統(tǒng)計(jì)的功能 :

from bs4 import BeautifulSoup
import urllib.request
import nltk
response = urllib.request.urlopen('http://php.net/')
html = response.read()
soup = BeautifulSoup(html,"html5lib")
text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
freq = nltk.FreqDist(tokens)
for key,val in freq.items():
  print (str(key) + ':' + str(val))

如果你查看輸出結(jié)果,會(huì)發(fā)現(xiàn)最常用的詞語是PHP。

你可以用繪圖函數(shù)為這些詞頻繪制一個(gè)圖形: freq.plot(20, cumulative=False)

從圖中,你可以肯定這篇文章正在談?wù)?PHP。這很棒!有一些詞,如"the," "of," "a," "an," 等等。這些詞是停止詞。一般來說,停止詞語應(yīng)該被刪除,以防止它們影響我們的結(jié)果。

使用 NLTK 刪除停止詞

NLTK 具有大多數(shù)語言的停止詞表。要獲得英文停止詞,你可以使用以下代碼:

from nltk.corpus import stopwords
stopwords.words('english')

現(xiàn)在,讓我們修改我們的代碼,并在繪制圖形之前清理標(biāo)記。首先,我們復(fù)制一個(gè)列表。然后,我們通過對(duì)列表中的標(biāo)記進(jìn)行遍歷并刪除其中的停止詞:

clean_tokens = tokens[:]
sr = stopwords.words('english')
for token in tokens:
  if token in stopwords.words('english'):
    clean_tokens.remove(token)

你可以在這里查看Python List 函數(shù),  了解如何處理列表。

最終的代碼應(yīng)該是這樣的:

from bs4 import BeautifulSoup
import urllib.request
import nltk
from nltk.corpus import stopwords
response = urllib.request.urlopen('http://php.net/')
html = response.read()
soup = BeautifulSoup(html,"html5lib")
text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
clean_tokens = tokens[:]
sr = stopwords.words('english')
for token in tokens:
  if token in stopwords.words('english'):
    clean_tokens.remove(token)
freq = nltk.FreqDist(clean_tokens)
for key,val in freq.items():
  print (str(key) + ':' + str(val))

如果你現(xiàn)在檢查圖表,會(huì)感覺比之前那張圖標(biāo)更加清晰,因?yàn)闆]有了停止詞的干擾。

freq.plot(20,cumulative=False)

使用 NLTK 對(duì)文本分詞

我們剛剛了解了如何使用 split( ) 函數(shù)將文本分割為標(biāo)記 ?,F(xiàn)在,我們將看到如何使用 NLTK 對(duì)文本進(jìn)行標(biāo)記化。對(duì)文本進(jìn)行標(biāo)記化是很重要的,因?yàn)槲谋緹o法在沒有進(jìn)行標(biāo)記化的情況下被處理。標(biāo)記化意味著將較大的部分分隔成更小的單元。

你可以將段落分割為句子,并根據(jù)你的需要將句子分割為單詞。NLTK 具有內(nèi)置的句子標(biāo)記器和詞語標(biāo)記器。

假設(shè)我們有如下的示例文本:

Hello Adam, how are you? I hope everything is going well.  Today is a good day, see you dude.

為了將這個(gè)文本標(biāo)記化為句子,我們可以使用句子標(biāo)記器:

from nltk.tokenize import sent_tokenize
mytext = "Hello Adam, how are you? I hope everything is going well. Today is a good day, see you dude."
print(sent_tokenize(mytext))

輸出如下:

['Hello Adam, how are you?', 'I hope everything is going well.', 'Today is a good day, see you dude.']

你可能會(huì)說,這是一件容易的事情。我不需要使用 NLTK 標(biāo)記器,并且我可以使用正則表達(dá)式來分割句子,因?yàn)槊總€(gè)句子前后都有標(biāo)點(diǎn)符號(hào)或者空格。

那么,看看下面的文字:

Hello Mr. Adam, how are you? I hope everything is going well. Today is a good day, see you dude.

呃!Mr. 是一個(gè)詞,雖然帶有一個(gè)符號(hào)。讓我們來試試使用 NLTK 進(jìn)行分詞:

from nltk.tokenize import sent_tokenize
mytext = "Hello Mr. Adam, how are you? I hope everything is going well. Today is a good day, see you dude."
print(sent_tokenize(mytext))

輸出如下所示:

['Hello Mr. Adam, how are you?', 'I hope everything is going well.', 'Today is a good day, see you dude.']

Great!結(jié)果棒極了。然后我們嘗試使用詞語標(biāo)記器來看看它是如何工作的:

from nltk.tokenize import word_tokenize
mytext = "Hello Mr. Adam, how are you? I hope everything is going well. Today is a good day, see you dude."
print(word_tokenize(mytext))

輸出如下:

['Hello', 'Mr.', 'Adam', ',', 'how', 'are', 'you', '?', 'I', 'hope', 'everything', 'is', 'going', 'well', '.', 'Today', 'is', 'a', 'good', 'day', ',', 'see', 'you', 'dude', '.']

正如所料,Mr. 是一個(gè)詞,也確實(shí)被 NLTK 當(dāng)做一個(gè)詞。NLTK使用 nltk.tokenize.punkt module 中的  PunktSentenceTokenizer 進(jìn)行文本分詞。這個(gè)標(biāo)記器經(jīng)過了良好的訓(xùn)練,可以對(duì)多種語言進(jìn)行分詞 。

標(biāo)記非英語語言文本

為了標(biāo)記其他語言,可以像這樣指定語言:

from nltk.tokenize import sent_tokenize
mytext = "Bonjour M. Adam, comment allez-vous? J'espère que tout va bien. Aujourd'hui est un bon jour."
print(sent_tokenize(mytext,"french"))

結(jié)果將是這樣的:

['Bonjour M. Adam, comment allez-vous?', "J'espère que tout va bien.", "Aujourd'hui est un bon jour."]

NLTk 對(duì)其他非英語語言的支持也非常好!

從 WordNet 獲取同義詞

如果你還記得我們使用 nltk.download( ) 安裝 NLTK 的擴(kuò)展包時(shí)。其中一個(gè)擴(kuò)展包名為 WordNet。WordNet 是為自然語言處理構(gòu)建的數(shù)據(jù)庫。它包括部分詞語的一個(gè)同義詞組和一個(gè)簡短的定義。

通過 NLTK 你可以得到給定詞的定義和例句:

from nltk.corpus import wordnet
syn = wordnet.synsets("pain")
print(syn[0].definition())
print(syn[0].examples())

結(jié)果是:

a symptom of some physical hurt or disorder
['the patient developed severe pain and distension']

WordNet 包含了很多詞的定義:

from nltk.corpus import wordnet
syn = wordnet.synsets("NLP")
print(syn[0].definition())
syn = wordnet.synsets("Python")
print(syn[0].definition())

結(jié)果是:

the branch of information science that deals with natural language information
large Old World boas

您可以使用 WordNet 來獲得同義詞:

from nltk.corpus import wordnet
synonyms = []
for syn in wordnet.synsets('Computer'):
  for lemma in syn.lemmas():
    synonyms.append(lemma.name())
print(synonyms)

輸出是:

['computer', 'computing_machine', 'computing_device', 'data_processor', 'electronic_computer', 'information_processing_system', 'calculator', 'reckoner', 'figurer', 'estimator', 'computer']

Cool!

從 WordNet 獲取反義詞

你可以用同樣的方法得到單詞的反義詞。你唯一要做的是在將 lemmas 的結(jié)果加入數(shù)組之前,檢查結(jié)果是否確實(shí)是一個(gè)正確的反義詞。

from nltk.corpus import wordnet
antonyms = []
for syn in wordnet.synsets("small"):
  for l in syn.lemmas():
    if l.antonyms():
      antonyms.append(l.antonyms()[0].name())
print(antonyms)

輸出是:

['large', 'big', 'big']

這就是 NLTK 在自然語言處理中的力量。

NLTK詞干提取

單詞詞干提取就是從單詞中去除詞綴并返回詞根。(比方說 working 的詞干是 work。)搜索引擎在索引頁面的時(shí)候使用這種技術(shù),所以很多人通過同一個(gè)單詞的不同形式進(jìn)行搜索,返回的都是相同的,有關(guān)這個(gè)詞干的頁面。

詞干提取的算法有很多,但最常用的算法是 Porter 提取算法。NLTK 有一個(gè) PorterStemmer 類,使用的就是 Porter 提取算法。

from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
print(stemmer.stem('working'))

結(jié)果是: 

work

結(jié)果很清楚。

還有其他一些提取算法,如 Lancaster 提取算法。這個(gè)算法的輸出同 Porter 算法的結(jié)果在幾個(gè)單詞上不同。你可以嘗試他們兩個(gè)算法來查看有哪些不同結(jié)果。

提取非英語單詞詞干

SnowballStemmer 類,除了英語外,還可以適用于其他 13 種語言。支持的語言如下:

from nltk.stem import SnowballStemmer
print(SnowballStemmer.languages)
'danish', 'dutch', 'english', 'finnish', 'french', 'german', 'hungarian', 'italian', 'norwegian', 'porter', 'portuguese', 'romanian', 'russian', 'spanish', 'swedish'

你可以使用 SnowballStemmer 類的 stem()函數(shù)來提取非英語單詞,如下所示:

from nltk.stem import SnowballStemmer
french_stemmer = SnowballStemmer('french')
print(french_stemmer.stem("French word"))

來自法國的朋友歡迎在評(píng)論區(qū) poll 出你們測(cè)試的結(jié)果!

使用 WordNet 引入詞匯

詞匯的詞匯化與提取詞干類似,但不同之處在于詞匯化的結(jié)果是一個(gè)真正的詞匯。與詞干提取不同,當(dāng)你試圖提取一些詞干時(shí),有可能會(huì)導(dǎo)致這樣的情況:

from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
print(stemmer.stem('increases'))

結(jié)果是:

increas

現(xiàn)在,如果我們?cè)噲D用NLTK WordNet來還原同一個(gè)詞,結(jié)果會(huì)是正確的:

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('increases'))

結(jié)果是:

 increase

結(jié)果可能是同義詞或具有相同含義的不同詞語。有時(shí),如果你試圖還原一個(gè)詞,比如 playing,還原的結(jié)果還是 playing。這是因?yàn)槟J(rèn)還原的結(jié)果是名詞,如果你想得到動(dòng)詞,可以通過以下的方式指定。

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('playing', pos="v"))

結(jié)果是: 

play

實(shí)際上,這是一個(gè)非常好的文本壓縮水平。最終壓縮到原文本的 50% 到 60% 左右。結(jié)果可能是動(dòng)詞,名詞,形容詞或副詞:

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('playing', pos="v"))
print(lemmatizer.lemmatize('playing', pos="n"))
print(lemmatizer.lemmatize('playing', pos="a"))
print(lemmatizer.lemmatize('playing', pos="r"))

結(jié)果是:

play
playing
playing
playing

詞干化和詞化差異

好吧,讓我們分別嘗試一些單詞的詞干提取和詞形還原:

from nltk.stem import WordNetLemmatizer
from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
lemmatizer = WordNetLemmatizer()
print(stemmer.stem('stones'))
print(stemmer.stem('speaking'))
print(stemmer.stem('bedroom'))
print(stemmer.stem('jokes'))
print(stemmer.stem('lisa'))
print(stemmer.stem('purple'))
print('----------------------')
print(lemmatizer.lemmatize('stones'))
print(lemmatizer.lemmatize('speaking'))
print(lemmatizer.lemmatize('bedroom'))
print(lemmatizer.lemmatize('jokes'))
print(lemmatizer.lemmatize('lisa'))
print(lemmatizer.lemmatize('purple'))

結(jié)果是:

stone
speak
bedroom
joke
lisa
purpl
----------------------
stone
speaking
bedroom
joke
lisa
purple

詞干提取的方法可以在不知道語境的情況下對(duì)詞匯使用,這就是為什么它相較詞形還原方法速度更快但準(zhǔn)確率更低。

在我看來,詞形還原比提取詞干的方法更好。詞形還原,如果實(shí)在無法返回這個(gè)詞的變形,也會(huì)返回另一個(gè)真正的單詞;這個(gè)單詞可能是一個(gè)同義詞,但不管怎樣這是一個(gè)真正的單詞。當(dāng)有時(shí)候,你不關(guān)心準(zhǔn)確度,需要的只是速度。在這種情況下,詞干提取的方法更好。

我們?cè)诒?NLP 教程中討論的所有步驟都涉及到文本預(yù)處理。在以后的文章中,我們將討論使用Python NLTK進(jìn)行文本分析。

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python還能這么玩之用Python修改了班花的開機(jī)密碼

    Python還能這么玩之用Python修改了班花的開機(jī)密碼

    今天帶大家學(xué)習(xí)如何用Python修改開機(jī)密碼,文中有非常詳細(xì)的代碼示例,喜歡惡作劇的小伙伴可以看一下,不過不要亂用哦,需要的朋友可以參考下
    2021-06-06
  • python中Mako庫實(shí)例用法

    python中Mako庫實(shí)例用法

    在本篇文章里小編給大家分享的是一篇關(guān)于python中Mako庫實(shí)例用法的相關(guān)文章,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-12-12
  • 基于Pygame實(shí)現(xiàn)簡單的貪吃蛇游戲

    基于Pygame實(shí)現(xiàn)簡單的貪吃蛇游戲

    Pygame是一個(gè)專門用來開發(fā)游戲的Python模塊,主要用于開發(fā)、設(shè)計(jì)?2D?電子游戲。本文主要為大家介紹了通過Pygame制作一個(gè)簡單的貪吃蛇游戲,感興趣的同學(xué)可以關(guān)注一下
    2021-12-12
  • 輕松掌握Python中的if和循環(huán)判斷技巧

    輕松掌握Python中的if和循環(huán)判斷技巧

    這篇文章主要介紹了輕松掌握Python中的if和循環(huán)判斷技巧的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • np.random.choice()函數(shù)示例詳解

    np.random.choice()函數(shù)示例詳解

    np.random.choice() 是 NumPy 中的一個(gè)隨機(jī)抽樣函數(shù),用于從給定的一維數(shù)組中隨機(jī)抽取指定數(shù)量或指定概率的元素,本文給大家介紹np.random.choice()函數(shù)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2023-11-11
  • Python Pandas實(shí)現(xiàn)DataFrame合并的圖文教程

    Python Pandas實(shí)現(xiàn)DataFrame合并的圖文教程

    我們?cè)谑褂胮andas處理數(shù)據(jù)的時(shí)候,往往會(huì)需要合并兩個(gè)或者多個(gè)DataFrame的操作,下面這篇文章主要給大家介紹了關(guān)于Pandas實(shí)現(xiàn)DataFrame合并的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python 調(diào)用win32pai 操作cmd的方法

    python 調(diào)用win32pai 操作cmd的方法

    下面小編就為大家?guī)硪黄猵ython 調(diào)用win32pai 操作cmd的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小

    matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小

    在撰寫論文時(shí)常常會(huì)用到matplotlib來繪制三維散點(diǎn)圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之Pyplot模塊繪制三維散點(diǎn)圖使用顏色表示數(shù)值大小的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python 中Django驗(yàn)證碼功能的實(shí)現(xiàn)代碼

    Python 中Django驗(yàn)證碼功能的實(shí)現(xiàn)代碼

    驗(yàn)證碼是一種區(qū)分用戶是計(jì)算機(jī)還是人的公共全自動(dòng)程序,很多用戶登錄和注冊(cè)系統(tǒng)都提供了圖形驗(yàn)證碼功能。這篇文章主要介紹了Python 中Django驗(yàn)證碼功能的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2019-06-06
  • Python+opencv 實(shí)現(xiàn)圖片文字的分割的方法示例

    Python+opencv 實(shí)現(xiàn)圖片文字的分割的方法示例

    這篇文章主要介紹了Python+opencv 實(shí)現(xiàn)圖片文字的分割的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

海南省| 湖口县| 灵武市| 武威市| 白山市| 伊川县| 连平县| 武穴市| 台中县| 西华县| 霍城县| 岳普湖县| 丹阳市| 睢宁县| 镇坪县| 镇坪县| 南郑县| 昌乐县| 铁岭县| 乐业县| 南涧| 麻江县| 秭归县| 文化| 甘谷县| 宜兴市| 布拖县| 聂拉木县| 博罗县| 河北省| 罗江县| 靖远县| 怀集县| 荣成市| 儋州市| 沙坪坝区| 浦江县| 象山县| 巴塘县| 通许县| 尤溪县|