社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用python&nlp,如何从包含大量自由文本的excel列中提取特定文本字符串和字符串前面的对应数字?

bpfreefly • 5 年前 • 648 次点击  

我对python比较陌生,对nlp(和nltk)也很陌生,我在网上搜索了一些指导,但没有找到完整的解决方案。不幸的是,我一直在玩的稀疏代码是在另一个网络上,但我包括一个示例电子表格。我希望得到建议的简单英语步骤(比下面更详细),以便我可以首先尝试用python 3编写它。除非你能更容易地帮助编写脚本…这样的话,谢谢。

问题:一个健壮的电子表格中有几列是非常非结构化的,其中有500-5000个英文字符可以讲述一个故事。我需要从本质上通过提取可量化的数据使它更结构化一些。我需要:

1)在用户提供的非结构化自由文本列中搜索字符串(用户输入列标题)(我认为我做得对)

2)在Excel中将该字符串设为新的列标题(我认为我做得对)

3)抓住绳子前面的数字(这就是我卡住的地方。正如你在表格中看到的,有时数字和文本之间没有空格,当然,有时拼写错误)

4)将该数字放在同一行的新列中(尚未到达此步骤)

我将不得不为多个关键字重复这样做,但我相信,我可以通过循环或其他方式来解决这一部分。非常感谢您的时间和专业知识…

Example of spreadsheet with unstructured free text

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46592
 
648 次点击  
文章 [ 2 ]  |  最新文章 5 年前
bpfreefly
Reply   •   1 楼
bpfreefly    6 年前

我想我找到了我要找的东西。 https://community.esri.com/thread/86096 有3或4个脚本,似乎可以做到这一点。谢谢您。。!

David Hynes
Reply   •   2 楼
David Hynes    6 年前

如果我理解正确,首先我们需要从文本字符串中获取数字。

cell_val = sheet1wb1.cell(row=rowNum,column=4).value

这将创建一个包含字符串中每个数字的列表

new_ = [int(s) for s in cell_val.split() if s.isdigit()]

print(new_)

您可以使用列表将值分配给列。 然后定义列表中第1个数字到第5列的值

sheet1wb1.cell(row=rowNum, column=5).value = str(new_[1])