extract_keywords
时间: 2023-08-04 10:07:45 浏览: 42
提取关键词是指从一段文本中抽取出最具代表性和重要性的词语或短语。这些关键词可以帮助我们更好地理解文本的主题和内容。关键词提取可以通过多种方法实现,包括基于统计的方法、基于机器学习的方法和基于语义的方法。常见的关键词提取算法有TF-IDF(词频-逆文档频率)、TextRank和LDA(Latent Dirichlet Allocation)等。这些算法会计算每个词语在文本中的重要性,并根据重要性进行排序,选取排名靠前的词语作为关键词。
相关问题
keywords[name].extend(extract_keywords(text)) 报错'dict' object has no attribute 'extend'
这个错误是因为你使用 `extend()` 方法在一个字典类型的对象上。字典类型的对象不支持 `extend()` 方法。
如果你想要将一个列表中的元素添加到字典类型的对象中的某一个键对应的值中,可以使用以下代码:
```python
keywords['name'] += extract_keywords(text)
```
或者可以使用以下代码:
```python
keywords['name'].extend(extract_keywords(text))
```
其中,`+=` 操作符可以将两个列表合并,相当于执行 `extend()` 方法。但是如果 `keywords['name']` 所对应的值不存在或者不是一个列表类型的对象,这种写法会导致错误。因此,建议使用第二种写法,先判断 `keywords['name']` 是否为列表类型的对象,如果是,则可以使用 `extend()` 方法;如果不是,则可以使用 `append()` 方法将元素添加到列表中。
hire_text<-read.csv("C:/Users/ASUS/Desktop/text.csv") hire_text hire_text %>% mutate(id = 1:n()) -> hire_txt #给文档编号3 worker(type = "tag") -> wk #构造一个分词器,需要得到词性56 hire_txt %>% mutate(words = map(hire_text,tagging,jieba = wk)) %>% mutate(word_tag = map(words,enframe,name = "tag",value = "word")) %>% select(id,word_tag) -> hire_words #构造提取关键词的函数 extract_keywords = function(dt){ textrank_keywords(dt$word,relevant = str_detect(dt$tag,"^n"),ngram_max = 2) %>% keywords } hire_words %>% mutate(textrank.key = map(word_tag,extract_keywords)) %>% select(-word_tag) -> tr_keyword
根据你提供的代码,出现了一个错误。错误在于`map()`函数的第一个参数`word_tag`,它需要的是一个列表,但是`word_tag`是一个列名,所以会导致以下错误信息:
```
Error in `map()`: In argument: `textrank.key = map(word_tag, extract_keywords)`. Caused by error in `map()`: In index: 1. With name: text.
```
如果你想要使用`word_tag`这一列,应该使用`hire_words$word_tag`,而不是`word_tag`。请修改代码如下:
```
hire_words %>%
mutate(textrank.key = map(hire_words$word_tag, extract_keywords)) %>%
select(-word_tag) -> tr_keyword
```
这样修改后,`map()`函数的第一个参数就是一个列表了,可以正确地运行提取关键词的函数`extract_keywords()`。