def get_word_vocabulary(urls, max_tokens, max_length_words):
时间: 2023-06-24 16:07:27 浏览: 103
该函数的作用是从给定的一组 URL 中提取最常见的单词,并返回一个单词-索引映射和一个索引-单词映射。
参数说明:
- urls: 包含文本的 URL 列表
- max_tokens: 词汇表的大小(即保留最常见的多少个单词)
- max_length_words: 单词的最大长度(超过该长度的单词将被忽略)
函数实现:
```python
import requests
from bs4 import BeautifulSoup
from collections import Counter
def get_word_vocabulary(urls, max_tokens, max_length_words):
words = []
for url in urls:
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
for p in soup.find_all('p'):
words.extend(p.text.strip().split())
words = [w.lower() for w in words if len(w) <= max_length_words]
word_counts = Counter(words)
word_counts = word_counts.most_common(max_tokens)
word_index = {w[0]: i+1 for i, w in enumerate(word_counts)}
index_word = {i+1: w[0] for i, w in enumerate(word_counts)}
return word_index, index_word
```
函数首先遍历给定的 URL 列表,对每个 URL 发送 GET 请求,然后使用 BeautifulSoup 库解析 HTML,并提取所有段落中的单词。然后将单词转换为小写,并将长度超过 `max_length_words` 的单词忽略。接下来使用 Counter 对单词进行计数,并返回最常出现的 `max_tokens` 个单词及其出现次数。最后,将单词与索引之间建立双向映射,并将其作为字典返回。注意,索引从1开始,因为0通常被保留用于填充。
阅读全文