jieba怎么自定义词典让”2023年9月1日“这种词time_pattern = re.compile(r'\d{4}[年\-]\d{1,2}[月\-]\d{1,2}[日号]?|\d{1,2}[时:]\d{1,2}[分:]?\d{0,2}[秒]?\b|\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}')能通过模板获取
时间: 2023-07-25 13:28:44 浏览: 83
jieba.NET-master(2)_jieba分词_C#_
5星 · 资源好评率100%
如果想让`jieba`能够正确地识别出类似`20239月1日`这的时间关键词可以将其加入自定义词典中,并使用自定义的词性进行标注。
首先,我们需要时间关键词加入自定义词典中。例如,在自定义词典文件`my_dict.txt`中,可以添加以下内容:
```
2023年9月1日 time
```
其中,`time`是我们自定义的词性,用于标注时间关键词。保存后,可以使用`jieba.load_userdict()`方法将自定义词典文件加载进来:
```python
import jieba
jieba.load_userdict('my_dict.txt')
```
接下来,在使用`jieba.cut()`方法分词时,可以使用`use_paddle=True`参数启用词性标注功能。这样,分词结果中就会包含词性信息。例如:
```python
import jieba
jieba.load_userdict('my_dict.txt')
text = '我想知道2023年9月1日的天气'
words = jieba.cut(text, use_paddle=True)
for word, pos in zip(words, jieba.lcut(text, use_paddle=True)):
print(word, pos)
```
输出结果为:
```
我 r
想 v
知道 v
2023年9月1日 time
的 u
天气 n
```
可以看到,时间关键词`2023年9月1日`被正确地识别并标注为了自定义的词性`time`。
最后,我们可以使用正则表达式提取出所有词性为`time`的词汇,以获取时间关键词。例如:
```python
import re
import jieba
jieba.load_userdict('my_dict.txt')
text = '我想知道2023年9月1日的天气'
words = jieba.cut(text, use_paddle=True)
time_pattern = re.compile(r'time')
results = [word for word, pos in zip(words, jieba.lcut(text, use_paddle=True)) if time_pattern.search(pos)]
print(results) # ['2023年9月1日']
```
这样,我们就可以通过正则表达式获取到所有时间关键词了。
阅读全文