Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python文本处理(str.contains)_Python_String_Pandas_Contains - Fatal编程技术网

Python文本处理(str.contains)

Python文本处理(str.contains),python,string,pandas,contains,Python,String,Pandas,Contains,我正在熊猫中使用str.contains进行文本分析。如果我最近的数据工作是一名分析师,我想要一个单词Data&Analyst的组合,但同时我想指定用于组合的两个单词之间的单词数,这里Data和Analyst之间是两个单词。目前我使用DataFile.XXX.str.contains'job'&DataFile.XXX.str.contains'Analyst'来获取job Analyst的计数。 如何在str.contains语法中指定两个单词之间的单词数。 提前谢谢你不能。至少,不是以简单或

我正在熊猫中使用str.contains进行文本分析。如果我最近的数据工作是一名分析师,我想要一个单词Data&Analyst的组合,但同时我想指定用于组合的两个单词之间的单词数,这里Data和Analyst之间是两个单词。目前我使用DataFile.XXX.str.contains'job'&DataFile.XXX.str.contains'Analyst'来获取job Analyst的计数。 如何在str.contains语法中指定两个单词之间的单词数。
提前谢谢

你不能。至少,不是以简单或标准化的方式

即使是最基本的,比如你如何定义一个词,也比你想象的要复杂得多。单词分析和词汇接近度,例如,在句子s中,两个单词之间的距离是否在D以内?这是我们的领域。NLP和邻近搜索不是基本Panda的一部分,也不是Python标准字符串处理的一部分。你可以导入一些东西来解决这个问题,但这完全是另一回事

让我们看一个简单的方法。首先,您需要一种将字符串解析为单词的方法。根据NLP标准,以下内容较为粗略,但适用于更简单的情况:

def parse_单词: 从字符串中提取英语单词的简单解析器。 注意:对一个难题的简单化解决方案。 许多可能是重要的边角情况 没有处理。只有一个例子:连字符单词。 返回re.findallr\w+?:'[st]?,s,re.I 例如:

>>>不要认为这一天的最后时刻不会到来 ['和',不要'想','这',今天的'最后','时刻',不会'来'] 然后,您需要一种方法来查找目标词所在列表中的所有索引:

def列表指示器目标,序号: 返回seq中找到目标的所有索引。 指数=[] 光标=0 尽管如此: 尝试: 索引=序号indextarget,光标 除值错误外: 回报指数 其他: 附录索引 游标=索引+1 最后是一个决策包装:

def words_with intarget_words,s,max_distance,不区分大小写=True: 确定两个目标词是否在一个的最大距离位置内 另一个在字符串s中。 如果你有目标的话!=2: raise VALUE ERROR“必须提供2个目标词” 对号入座 如果不区分大小写: s=s.casefold target_words=[tw.casefold代表target_words中的tw] 对于Python 2,将“casefold”替换为“lower”` 解析单词并确定它们在字符串中的逻辑位置 单词=解析单词 目标索引=[列表索引,目标单词中t的单词] 不在场的话 如果不是目标_索引[0]或不是目标_索引[1]: 返回错误 计算两个单词的所有距离组合 在s中,一个单词可能不止一次出现 实际_距离=[i2-i1,目标_索引中的i2[1]目标_索引中的i1[0]] 回答最小观测距离是否大于s=并且不要认为这一天的最后时刻不会到来 >>>[THIS,'last',s,2中的单词 符合事实的 >>>[think,'moment',s,2]中的单词 错误的 剩下要做的唯一一件事就是把它映射回熊猫:

df=pd.DataFrame{'desc':[ “我最近的数据工作是一名分析师”, “总有一天我的王子会来的”, “哦,在彩虹上方的某个地方,蓝知更鸟在飞翔”, 难道你不愿意分担一个共同的灾难吗?, “约伯!彩虹!分析师。” ]} df['ja2']=df.desc.applylambda x:words_在[job,'analyst']中,x,2 df['ja3']=df.desc.applylambda x:words_在[job,'analyst']中,x,3
这就是你解决问题的基本方法。请记住,这是一个粗糙而简单的解决方案。一些简单提出的问题并没有得到简单的回答。NLP问题经常是其中之一。

请分享您的数据帧示例。熊猫是一个非常有用的图书馆,但它不是万能的。文本分析。。。大概视情况而定。。很可能不是。在提出更多问题之前,请花30分钟阅读以下内容:。欢迎来到SO。不幸的是,这不是一个讨论论坛或教程服务。请花点时间阅读该页面上的其他链接。我知道如何回答这个问题。但我不会,因为你的问题不符合这个网站的标准。请提供一份表格,并阅读。。