当前位置:   article > 正文

整理了 25 个 Python 文本处理案例,收藏!

python文本分析案例

8705de54ab5c14ac5537c40492122817.png

Python 处理文本是一项非常常见的功能,本文整理了多种文本提取及NLP相关的案例,还是非常用心的

文章很长,高低要忍一下,如果忍不了,那就收藏吧,总会用到的

  • 提取 PDF 内容

  • 提取 Word 内容

  • 提取 Web 网页内容

  • 读取 Json 数据

  • 读取 CSV 数据

  • 删除字符串中的标点符号

  • 使用 NLTK 删除停用词

  • 使用 TextBlob 更正拼写

  • 使用 NLTK 和 TextBlob 的词标记化

  • 使用 NLTK 提取句子单词或短语的词干列表

  • 使用 NLTK 进行句子或短语词形还原

  • 使用 NLTK 从文本文件中查找每个单词的频率

  • 从语料库中创建词云

  • NLTK 词法散布图

  • 使用 countvectorizer 将文本转换为数字

  • 使用 TF-IDF 创建文档术语矩阵

  • 为给定句子生成 N-gram

  • 使用带有二元组的 sklearn CountVectorize 词汇规范

  • 使用 TextBlob 提取名词短语

  • 如何计算词-词共现矩阵

  • 使用 TextBlob 进行情感分析

  • 使用 Goslate 进行语言翻译

  • 使用 TextBlob 进行语言检测和翻译

  • 使用 TextBlob 获取定义和同义词

  • 使用 TextBlob 获取反义词列表

1提取 PDF 内容

  1. # pip install PyPDF2  安装 PyPDF2
  2. import PyPDF2
  3. from PyPDF2 import PdfFileReader
  4.  
  5. # Creating a pdf file object.
  6. pdf = open("test.pdf""rb")
  7.  
  8. # Creating pdf reader object.
  9. pdf_reader = PyPDF2.PdfFileReader(pdf)
  10.  
  11. # Checking total number of pages in a pdf file.
  12. print("Total number of Pages:", pdf_reader.numPages)
  13.  
  14. # Creating a page object.
  15. page = pdf_reader.getPage(200)
  16.  
  17. # Extract data from a specific page number.
  18. print(page.extractText())
  19.  
  20. # Closing the object.
  21. pdf.close()

2提取 Word 内容

  1. # pip install python-docx  安装 python-docx
  2. import docx
  3.  
  4.  
  5. def main():
  6.     try:
  7.         doc = docx.Document('test.docx')  # Creating word reader object.
  8.         data = ""
  9.         fullText = []
  10.         for para in doc.paragraphs:
  11.             fullText.append(para.text)
  12.             data = '\n'.join(fullText)
  13.  
  14.         print(data)
  15.  
  16.     except IOError:
  17.         print('There was an error opening the file!')
  18.         return
  19.  
  20.  
  21. if __name__ == '__main__':
  22.     main()

3提取 Web 网页内容

  1. # pip install bs4  安装 bs4
  2. from urllib.request import Request, urlopen
  3. from bs4 import BeautifulSoup
  4.  
  5. req = Request('http://www.cmegroup.com/trading/products/#sortField=oi&sortAsc=false&venues=3&page=1&cleared=1&group=1',
  6.               headers={'User-Agent''Mozilla/5.0'})
  7.  
  8. webpage = urlopen(req).read()
  9.  
  10. # Parsing
  11. soup = BeautifulSoup(webpage, 'html.parser')
  12.  
  13. # Formating the parsed html file
  14. strhtm = soup.prettify()
  15.  
  16. # Print first 500 lines
  17. print(strhtm[:500])
  18.  
  19. # Extract meta tag value
  20. print(soup.title.string)
  21. print(soup.find('meta', attrs={'property':'og:description'}))
  22.  
  23. # Extract anchor tag value
  24. for x in soup.find_all('a'):
  25.     print(x.string)
  26.  
  27. # Extract Paragraph tag value    
  28. for x in soup.find_all('p'):
  29.     print(x.text)

4读取 Json 数据

  1. import requests
  2. import json
  3. r = requests.get("https://support.oneskyapp.com/hc/en-us/article_attachments/202761727/example_2.json")
  4. res = r.json()
  5. # Extract specific node content.
  6. print(res['quiz']['sport'])
  7. # Dump data as string
  8. data = json.dumps(res)
  9. print(data)

5读取 CSV 数据

  1. import csv
  2. with open('test.csv','r') as csv_file:
  3.     reader =csv.reader(csv_file)
  4.     next(reader) # Skip first row
  5.     for row in reader:
  6.         print(row)

6删除字符串中的标点符号

  1. import re
  2. import string
  3.  
  4. data = "Stuning even for the non-gamer: This sound track was beautiful!\
  5. It paints the senery in your mind so well I would recomend\
  6. it even to people who hate vid. game music! I have played the game Chrono \
  7. Cross but out of all of the games I have ever played it has the best music! \
  8. It backs away from crude keyboarding and takes a fresher step with grate\
  9. guitars and soulful orchestras.\
  10. It would impress anyone who cares to listen!"
  11.  
  12. # Methood 1 : Regex
  13. # Remove the special charaters from the read string.
  14. no_specials_string = re.sub('[!#?,.:";]''', data)
  15. print(no_specials_string)
  16.  
  17.  
  18. # Methood 2 : translate()
  19. # Rake translator object
  20. translator = str.maketrans(''''string.punctuation)
  21. data = data.translate(translator)
  22. print(data)

7使用 NLTK 删除停用词

  1. from nltk.corpus import stopwords
  2.  
  3.  
  4. data = ['Stuning even for the non-gamer: This sound track was beautiful!\
  5. It paints the senery in your mind so well I would recomend\
  6. it even to people who hate vid. game music! I have played the game Chrono \
  7. Cross but out of all of the games I have ever played it has the best music! \
  8. It backs away from crude keyboarding and takes a fresher step with grate\
  9. guitars and soulful orchestras.\
  10. It would impress anyone who cares to listen!']
  11.  
  12. # Remove stop words
  13. stopwords = set(stopwords.words('english'))
  14.  
  15. output = []
  16. for sentence in data:
  17.     temp_list = []
  18.     for word in sentence.split():
  19.         if word.lower() not in stopwords:
  20.             temp_list.append(word)
  21.     output.append(' '.join(temp_list))
  22.  
  23.  
  24. print(output)

8使用 TextBlob 更正拼写

  1. from textblob import TextBlob
  2. data = "Natural language is a cantral part of our day to day life, and it's so antresting to work on any problem related to langages."
  3. output = TextBlob(data).correct()
  4. print(output)

9使用 NLTK 和 TextBlob 的词标记化

  1. import nltk
  2. from textblob import TextBlob
  3. data = "Natural language is a central part of our day to day life, and it's so interesting to work on any problem related to languages."
  4. nltk_output = nltk.word_tokenize(data)
  5. textblob_output = TextBlob(data).words
  6. print(nltk_output)
  7. print(textblob_output)

Output:

  1. ['Natural', 'language', 'is', 'a', 'central', 'part', 'of', 'our', 'day', 'to', 'day', 'life', ',', 'and', 'it', "'s", 'so', 'interesting', 'to', 'work', 'on', 'any', 'problem', 'related', 'to', 'languages', '.']
  2. ['Natural', 'language', 'is', 'a', 'central', 'part', 'of', 'our', 'day', 'to', 'day', 'life', 'and', 'it', "'s", 'so', 'interesting', 'to', 'work', 'on', 'any', 'problem', 'related', 'to', 'languages']

10使用 NLTK 提取句子单词或短语的词干列表

  1. from nltk.stem import PorterStemmer
  2.  
  3. st = PorterStemmer()
  4. text = ['Where did he learn to dance like that?',
  5.         'His eyes were dancing with humor.',
  6.         'She shook her head and danced away',
  7.         'Alex was an excellent dancer.']
  8.  
  9. output = []
  10. for sentence in text:
  11.     output.append(" ".join([st.stem(i) for i in sentence.split()]))
  12.  
  13. for item in output:
  14.     print(item)
  15.  
  16. print("-" * 50)
  17. print(st.stem('jumping'), st.stem('jumps'), st.stem('jumped'))

Output:

  1. where did he learn to danc like that?
  2. hi eye were danc with humor.
  3. she shook her head and danc away
  4. alex wa an excel dancer.
  5. --------------------------------------------------
  6. jump jump jump

11使用 NLTK 进行句子或短语词形还原

  1. from nltk.stem import WordNetLemmatizer
  2. wnl = WordNetLemmatizer()
  3. text = ['She gripped the armrest as he passed two cars at a time.',
  4.         'Her car was in full view.',
  5.         'A number of cars carried out of state license plates.']
  6. output = []
  7. for sentence in text:
  8.     output.append(" ".join([wnl.lemmatize(i) for i in sentence.split()]))
  9. for item in output:
  10.     print(item)
  11. print("*" * 10)
  12. print(wnl.lemmatize('jumps''n'))
  13. print(wnl.lemmatize('jumping''v'))
  14. print(wnl.lemmatize('jumped''v'))
  15. print("*" * 10)
  16. print(wnl.lemmatize('saddest''a'))
  17. print(wnl.lemmatize('happiest''a'))
  18. print(wnl.lemmatize('easiest''a'))

Output:

  1. She gripped the armrest a he passed two car at a time.
  2. Her car wa in full view.
  3. A number of car carried out of state license plates.
  4. **********
  5. jump
  6. jump
  7. jump
  8. **********
  9. sad
  10. happy
  11. easy

12使用 NLTK 从文本文件中查找每个单词的频率

  1. import nltk
  2. from nltk.corpus import webtext
  3. from nltk.probability import FreqDist
  4.  
  5. nltk.download('webtext')
  6. wt_words = webtext.words('testing.txt')
  7. data_analysis = nltk.FreqDist(wt_words)
  8.  
  9. # Let's take the specific words only if their frequency is greater than 3.
  10. filter_words = dict([(m, n) for m, n in data_analysis.items() if len(m) > 3])
  11.  
  12. for key in sorted(filter_words):
  13.     print("%s: %s" % (key, filter_words[key]))
  14.  
  15. data_analysis = nltk.FreqDist(filter_words)
  16.  
  17. data_analysis.plot(25, cumulative=False)

Output:

  1. [nltk_data] Downloading package webtext to
  2. [nltk_data] C:\Users\amit\AppData\Roaming\nltk_data...
  3. [nltk_data] Unzipping corpora\webtext.zip.
  4. 1989: 1
  5. Accessing: 1
  6. Analysis: 1
  7. Anyone: 1
  8. Chapter: 1
  9. Coding: 1
  10. Data: 1
  11. ...

13从语料库中创建词云

  1. import nltk
  2. from nltk.corpus import webtext
  3. from nltk.probability import FreqDist
  4. from wordcloud import WordCloud
  5. import matplotlib.pyplot as plt
  6.  
  7. nltk.download('webtext')
  8. wt_words = webtext.words('testing.txt')  # Sample data
  9. data_analysis = nltk.FreqDist(wt_words)
  10.  
  11. filter_words = dict([(m, n) for m, n in data_analysis.items() if len(m) > 3])
  12.  
  13. wcloud = WordCloud().generate_from_frequencies(filter_words)
  14.  
  15. # Plotting the wordcloud
  16. plt.imshow(wcloud, interpolation="bilinear")
  17.  
  18. plt.axis("off")
  19. (-0.5399.5199.5-0.5)
  20. plt.show()

14NLTK 词法散布图

  1. import nltk
  2. from nltk.corpus import webtext
  3. from nltk.probability import FreqDist
  4. from wordcloud import WordCloud
  5. import matplotlib.pyplot as plt
  6.  
  7. words = ['data''science''dataset']
  8.  
  9. nltk.download('webtext')
  10. wt_words = webtext.words('testing.txt')  # Sample data
  11.  
  12. points = [(x, y) for x in range(len(wt_words))
  13.           for y in range(len(words)) if wt_words[x] == words[y]]
  14.  
  15. if points:
  16.     x, y = zip(*points)
  17. else:
  18.     x = y = ()
  19.  
  20. plt.plot(x, y, "rx", scalex=.1)
  21. plt.yticks(range(len(words)), words, color="b")
  22. plt.ylim(-1len(words))
  23. plt.title("Lexical Dispersion Plot")
  24. plt.xlabel("Word Offset")
  25. plt.show()

15使用 countvectorizer 将文本转换为数字

  1. import pandas as pd
  2. from sklearn.feature_extraction.text import CountVectorizer
  3.  
  4. # Sample data for analysis
  5. data1 = "Java is a language for programming that develops a software for several platforms. A compiled code or bytecode on Java application can run on most of the operating systems including Linux, Mac operating system, and Linux. Most of the syntax of Java is derived from the C++ and C languages."
  6. data2 = "Python supports multiple programming paradigms and comes up with a large standard library, paradigms included are object-oriented, imperative, functional and procedural."
  7. data3 = "Go is typed statically compiled language. It was created by Robert Griesemer, Ken Thompson, and Rob Pike in 2009. This language offers garbage collection, concurrency of CSP-style, memory safety, and structural typing."
  8.  
  9. df1 = pd.DataFrame({'Java': [data1], 'Python': [data2], 'Go': [data2]})
  10.  
  11. # Initialize
  12. vectorizer = CountVectorizer()
  13. doc_vec = vectorizer.fit_transform(df1.iloc[0])
  14.  
  15. # Create dataFrame
  16. df2 = pd.DataFrame(doc_vec.toarray().transpose(),
  17.                    index=vectorizer.get_feature_names())
  18.  
  19. # Change column headers
  20. df2.columns = df1.columns
  21. print(df2)

Output:

  1. Go Java Python
  2. and 2 2 2
  3. application 0 1 0
  4. are 1 0 1
  5. bytecode 0 1 0
  6. can 0 1 0
  7. code 0 1 0
  8. comes 1 0 1
  9. compiled 0 1 0
  10. derived 0 1 0
  11. develops 0 1 0
  12. for 0 2 0
  13. from 0 1 0
  14. functional 1 0 1
  15. imperative 1 0 1
  16. ...

16使用 TF-IDF 创建文档术语矩阵

  1. import pandas as pd
  2. from sklearn.feature_extraction.text import TfidfVectorizer
  3. # Sample data for analysis
  4. data1 = "Java is a language for programming that develops a software for several platforms. A compiled code or bytecode on Java application can run on most of the operating systems including Linux, Mac operating system, and Linux. Most of the syntax of Java is derived from the C++ and C languages."
  5. data2 = "Python supports multiple programming paradigms and comes up with a large standard library, paradigms included are object-oriented, imperative, functional and procedural."
  6. data3 = "Go is typed statically compiled language. It was created by Robert Griesemer, Ken Thompson, and Rob Pike in 2009. This language offers garbage collection, concurrency of CSP-style, memory safety, and structural typing."
  7. df1 = pd.DataFrame({'Java': [data1], 'Python': [data2], 'Go': [data2]})
  8. # Initialize
  9. vectorizer = TfidfVectorizer()
  10. doc_vec = vectorizer.fit_transform(df1.iloc[0])
  11. # Create dataFrame
  12. df2 = pd.DataFrame(doc_vec.toarray().transpose(),
  13.                    index=vectorizer.get_feature_names())
  14. # Change column headers
  15. df2.columns = df1.columns
  16. print(df2)

Output:

  1. Go Java Python
  2. and 0.323751 0.137553 0.323751
  3. application 0.000000 0.116449 0.000000
  4. are 0.208444 0.000000 0.208444
  5. bytecode 0.000000 0.116449 0.000000
  6. can 0.000000 0.116449 0.000000
  7. code 0.000000 0.116449 0.000000
  8. comes 0.208444 0.000000 0.208444
  9. compiled 0.000000 0.116449 0.000000
  10. derived 0.000000 0.116449 0.000000
  11. develops 0.000000 0.116449 0.000000
  12. for 0.000000 0.232898 0.000000
  13. ...

17为给定句子生成 N-gram

NLTK

  1. import nltk
  2. from nltk.util import ngrams
  3. # Function to generate n-grams from sentences.
  4. def extract_ngrams(data, num):
  5.     n_grams = ngrams(nltk.word_tokenize(data), num)
  6.     return [ ' '.join(grams) for grams in n_grams]
  7. data = 'A class is a blueprint for the object.'
  8. print("1-gram: ", extract_ngrams(data, 1))
  9. print("2-gram: ", extract_ngrams(data, 2))
  10. print("3-gram: ", extract_ngrams(data, 3))
  11. print("4-gram: ", extract_ngrams(data, 4))

TextBlob

  1. from textblob import TextBlob
  2.  
  3. # Function to generate n-grams from sentences.
  4. def extract_ngrams(data, num):
  5.     n_grams = TextBlob(data).ngrams(num)
  6.     return [ ' '.join(grams) for grams in n_grams]
  7.  
  8. data = 'A class is a blueprint for the object.'
  9.  
  10. print("1-gram: ", extract_ngrams(data, 1))
  11. print("2-gram: ", extract_ngrams(data, 2))
  12. print("3-gram: ", extract_ngrams(data, 3))
  13. print("4-gram: ", extract_ngrams(data, 4))

Output:

  1. 1-gram: ['A', 'class', 'is', 'a', 'blueprint', 'for', 'the', 'object']
  2. 2-gram: ['A class', 'class is', 'is a', 'a blueprint', 'blueprint for', 'for the', 'the object']
  3. 3-gram: ['A class is', 'class is a', 'is a blueprint', 'a blueprint for', 'blueprint for the', 'for the object']
  4. 4-gram: ['A class is a', 'class is a blueprint', 'is a blueprint for', 'a blueprint for the', 'blueprint for the object']

18使用带有二元组的 sklearn CountVectorize 词汇规范

  1. import pandas as pd
  2. from sklearn.feature_extraction.text import CountVectorizer
  3.  
  4. # Sample data for analysis
  5. data1 = "Machine language is a low-level programming language. It is easily understood by computers but difficult to read by people. This is why people use higher level programming languages. Programs written in high-level languages are also either compiled and/or interpreted into machine language so that computers can execute them."
  6. data2 = "Assembly language is a representation of machine language. In other words, each assembly language instruction translates to a machine language instruction. Though assembly language statements are readable, the statements are still low-level. A disadvantage of assembly language is that it is not portable, because each platform comes with a particular Assembly Language"
  7.  
  8. df1 = pd.DataFrame({'Machine': [data1], 'Assembly': [data2]})
  9.  
  10. # Initialize
  11. vectorizer = CountVectorizer(ngram_range=(22))
  12. doc_vec = vectorizer.fit_transform(df1.iloc[0])
  13.  
  14. # Create dataFrame
  15. df2 = pd.DataFrame(doc_vec.toarray().transpose(),
  16.                    index=vectorizer.get_feature_names())
  17.  
  18. # Change column headers
  19. df2.columns = df1.columns
  20. print(df2)

Output:

  1. Assembly Machine
  2. also either 0 1
  3. and or 0 1
  4. are also 0 1
  5. are readable 1 0
  6. are still 1 0
  7. assembly language 5 0
  8. because each 1 0
  9. but difficult 0 1
  10. by computers 0 1
  11. by people 0 1
  12. can execute 0 1
  13. ...

19使用 TextBlob 提取名词短语

  1. from textblob import TextBlob
  2. #Extract noun
  3. blob = TextBlob("Canada is a country in the northern part of North America.")
  4. for nouns in blob.noun_phrases:
  5.     print(nouns)

Output:

  1. canada
  2. northern part
  3. america

20如何计算词-词共现矩阵

  1. import numpy as np
  2. import nltk
  3. from nltk import bigrams
  4. import itertools
  5. import pandas as pd
  6.  
  7.  
  8. def generate_co_occurrence_matrix(corpus):
  9.     vocab = set(corpus)
  10.     vocab = list(vocab)
  11.     vocab_index = {word: i for i, word in enumerate(vocab)}
  12.  
  13.     # Create bigrams from all words in corpus
  14.     bi_grams = list(bigrams(corpus))
  15.  
  16.     # Frequency distribution of bigrams ((word1, word2), num_occurrences)
  17.     bigram_freq = nltk.FreqDist(bi_grams).most_common(len(bi_grams))
  18.  
  19.     # Initialise co-occurrence matrix
  20.     # co_occurrence_matrix[current][previous]
  21.     co_occurrence_matrix = np.zeros((len(vocab), len(vocab)))
  22.  
  23.     # Loop through the bigrams taking the current and previous word,
  24.     # and the number of occurrences of the bigram.
  25.     for bigram in bigram_freq:
  26.         current = bigram[0][1]
  27.         previous = bigram[0][0]
  28.         count = bigram[1]
  29.         pos_current = vocab_index[current]
  30.         pos_previous = vocab_index[previous]
  31.         co_occurrence_matrix[pos_current][pos_previous] = count
  32.     co_occurrence_matrix = np.matrix(co_occurrence_matrix)
  33.  
  34.     # return the matrix and the index
  35.     return co_occurrence_matrix, vocab_index
  36.  
  37.  
  38. text_data = [['Where''Python''is''used'],
  39.              ['What''is''Python' 'used''in'],
  40.              ['Why''Python''is''best'],
  41.              ['What''companies''use''Python']]
  42.  
  43. # Create one list using many lists
  44. data = list(itertools.chain.from_iterable(text_data))
  45. matrix, vocab_index = generate_co_occurrence_matrix(data)
  46.  
  47.  
  48. data_matrix = pd.DataFrame(matrix, index=vocab_index,
  49.                              columns=vocab_index)
  50. print(data_matrix)

Output:

  1. best use What Where ... in is Python used
  2. best 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 1.0
  3. use 0.0 0.0 0.0 0.0 ... 0.0 1.0 0.0 0.0
  4. What 1.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
  5. Where 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
  6. Pythonused 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 1.0
  7. Why 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 1.0
  8. companies 0.0 1.0 0.0 1.0 ... 1.0 0.0 0.0 0.0
  9. in 0.0 0.0 0.0 0.0 ... 0.0 0.0 1.0 0.0
  10. is 0.0 0.0 1.0 0.0 ... 0.0 0.0 0.0 0.0
  11. Python 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
  12. used 0.0 0.0 1.0 0.0 ... 0.0 0.0 0.0 0.0
  13. [11 rows x 11 columns]

21使用 TextBlob 进行情感分析

  1. from textblob import TextBlob
  2. def sentiment(polarity):
  3.     if blob.sentiment.polarity < 0:
  4.         print("Negative")
  5.     elif blob.sentiment.polarity > 0:
  6.         print("Positive")
  7.     else:
  8.         print("Neutral")
  9. blob = TextBlob("The movie was excellent!")
  10. print(blob.sentiment)
  11. sentiment(blob.sentiment.polarity)
  12. blob = TextBlob("The movie was not bad.")
  13. print(blob.sentiment)
  14. sentiment(blob.sentiment.polarity)
  15. blob = TextBlob("The movie was ridiculous.")
  16. print(blob.sentiment)
  17. sentiment(blob.sentiment.polarity)

Output:

  1. Sentiment(polarity=1.0, subjectivity=1.0)
  2. Positive
  3. Sentiment(polarity=0.3499999999999999, subjectivity=0.6666666666666666)
  4. Positive
  5. Sentiment(polarity=-0.3333333333333333, subjectivity=1.0)
  6. Negative

22使用 Goslate 进行语言翻译

  1. import goslate
  2. text = "Comment vas-tu?"
  3. gs = goslate.Goslate()
  4. translatedText = gs.translate(text, 'en')
  5. print(translatedText)
  6. translatedText = gs.translate(text, 'zh')
  7. print(translatedText)
  8. translatedText = gs.translate(text, 'de')
  9. print(translatedText)

23使用 TextBlob 进行语言检测和翻译

  1. from textblob import TextBlob
  2.  
  3. blob = TextBlob("Comment vas-tu?")
  4.  
  5. print(blob.detect_language())
  6.  
  7. print(blob.translate(to='es'))
  8. print(blob.translate(to='en'))
  9. print(blob.translate(to='zh'))

Output:

  1. fr
  2. ¿Como estas tu?
  3. How are you?
  4. 你好吗?

24使用 TextBlob 获取定义和同义词

  1. from textblob import TextBlob
  2. from textblob import Word
  3.  
  4. text_word = Word('safe')
  5.  
  6. print(text_word.definitions)
  7.  
  8. synonyms = set()
  9. for synset in text_word.synsets:
  10.     for lemma in synset.lemmas():
  11.         synonyms.add(lemma.name())
  12.          
  13. print(synonyms)

Output:

  1. ['strongbox where valuables can be safely kept', 'a ventilated or refrigerated cupboard for securing provisions from pests', 'contraceptive device consisting of a sheath of thin rubber or latex that is worn over the penis during intercourse', 'free from danger or the risk of harm', '(of an undertaking) secure from risk', 'having reached a base without being put out', 'financially sound']
  2. {'secure', 'rubber', 'good', 'safety', 'safe', 'dependable', 'condom', 'prophylactic'}

25使用 TextBlob 获取反义词列表

  1. from textblob import TextBlob
  2. from textblob import Word
  3. text_word = Word('safe')
  4. antonyms = set()
  5. for synset in text_word.synsets:
  6.     for lemma in synset.lemmas():        
  7.         if lemma.antonyms():
  8.             antonyms.add(lemma.antonyms()[0].name())        
  9. print(antonyms)

Output:

{'dangerous', 'out'}
 
 
 
 

END

  1. 推荐阅读
  2. 牛逼!Python常用数据类型的基本操作(长文系列第①篇)
  3. 牛逼!Python的判断、循环和各种表达式(长文系列第②篇)
  4. 牛逼!Python函数和文件操作(长文系列第③篇)
  5. 牛逼!Python错误、异常和模块(长文系列第④篇)

  1. 吴恩达deeplearining.ai的经典总结资料
  2. Ps:从小程序直接获取下载
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/140817
推荐阅读
相关标签
  

闽ICP备14008679号