将字词与网络抓取工具中的信息相匹配

时间:2019-06-10 14:06:50

标签: python regex web-scraping nlp

首先很抱歉,如果这是在错误的部分中,因为这不是编码问题,我不知道将其放在哪一部分。

我的问题是:

比方说,我创建了一个网络抓取工具,该抓取工具从求职发布网站提取所有信息。该信息如下所示:

Row 1 -  Company X , Computer engineer
Row 2 -  Company X , Civil engineer
Row 2 -  Company Y , Data Scientist
Row 3 -  Company Z , Data Analyst

我想用python甚至是excel创建一些东西,如果该标记更容易自动排成一行或根据一些预定的单词给公司打分。

如果工程师是有问题的单词,那么分数将是:

Company X = 2 , Company Y = 0 , Company Z = 0

如果您需要任何细节,请不要犹豫。我应该如何在线搜索任何答案? NLP或Regex可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

正则表达式足以解决您的问题。首先,您应该优化抓取的数据,使其格式相当稳定,然后可以使用正则表达式提取数据。这是您的数据示例:

import re
from pprint import pprint

REGEX = re.compile(r'Row (?P<row>\d+) *- *Company (?P<company>\S+) *, *(?P<profession>.*)')

rows = [
    'Row 1 -  Company X , Computer engineer',
    'Row 2 -  Company X , Civil engineer',
    'Row 2 -  Company Y , Data Scientist',
    'Row 3 -  Company Z , Data Analyst'
]

found_data = []

for row in rows:
    found = REGEX.match(row)
    if found:
        found_data.append([
            found.group('row'),
            found.group('company'),
            found.group('profession')
        ])
pprint(found_data)
[['1', 'X', 'Computer engineer'],
 ['2', 'X', 'Civil engineer'],
 ['2', 'Y', 'Data Scientist'],
 ['3', 'Z', 'Data Analyst']]