python 从文本中提取时间数据
时间: 2023-08-07 16:03:27 浏览: 49
要从文本中提取时间数据,可以使用 Python 中的正则表达式来匹配时间格式。下面是一个示例代码,可以匹配常见的时间格式:
```python
import re
text = "今天是2022年1月1日,晚上8点半去看电影。"
pattern = r"\d{4}年\d{1,2}月\d{1,2}日|\d{1,2}时\d{1,2}分"
matches = re.findall(pattern, text)
print(matches) # ['2022年1月1日', '8点半']
```
在上面的代码中,我们使用了正则表达式的 `|` 符号来表示匹配两种不同的时间格式:`\d{4}年\d{1,2}月\d{1,2}日` 和 `\d{1,2}时\d{1,2}分`。其中,`\d` 表示匹配数字,`{4}` 表示匹配 4 个数字,`{1,2}` 表示匹配 1 到 2 个数字,`\年`、`\月`、`\日`、`\时`、`\分` 表示匹配相应的符号。
最后,使用 `re.findall()` 函数来查找所有匹配的结果,并打印出来。运行上面的代码,输出结果为 `['2022年1月1日', '8点半']`,表示成功匹配到了两个时间。
相关问题
python从文本中提取人名
要从文本中提取人名,可以使用Python中的自然语言处理工具NLTK(Natural Language Toolkit)和正则表达式。具体步骤如下:
1. 导入需要的库和模块:
```
import nltk
from nltk.tokenize import word_tokenize
import re
```
2. 下载NLTK中必要的数据集:
```
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
```
3. 读取文本文件并进行分词:
```
with open('text.txt', 'r') as file:
text = file.read()
words = word_tokenize(text)
```
4. 对分词后的文本进行词性标注:
```
tagged_words = nltk.pos_tag(words)
```
5. 利用正则表达式匹配词性为NNP(专有名词)的词汇,并将其提取出来:
```
names = []
for word, tag in tagged_words:
if re.match('[NNP]+', tag):
names.append(word)
```
这里使用了正则表达式 '[NNP]+',表示匹配一个或多个词性为NNP的单词。
6. 最后得到的names列表中即为文本中提取出来的人名。
完整代码如下:
```
import nltk
from nltk.tokenize import word_tokenize
import re
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
with open('text.txt', 'r') as file:
text = file.read()
words = word_tokenize(text)
tagged_words = nltk.pos_tag(words)
names = []
for word, tag in tagged_words:
if re.match('[NNP]+', tag):
names.append(word)
print(names)
```
python从网页中提取数据
要从网页中提取数据,可以使用 Python 的 requests 和 BeautifulSoup 库。
1. 首先使用 requests 库获取网页内容:
```python
import requests
url = 'http://example.com' # 网页的 URL
response = requests.get(url)
html = response.text # 获取网页内容
```
2. 然后使用 BeautifulSoup 库解析 HTML,并提取所需的数据:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser') # 解析 HTML
data = soup.find('div', {'class': 'data'}) # 查找 class 为 'data' 的 div 标签
result = data.text # 获取标签内的文本内容
```
以上示例演示了如何获取指定 class 的 div 标签内的文本内容,你可以根据实际情况调整代码以获取你所需要的数据。