我想从数据帧中的文本中提取特定的单词。这些单词我已经输入到字典的列表中,它们属于某些类别(键)。由此,我想创建与存储单词的类别相对应的列。和往常一样,最好用例子来说明:
我有一个数据框:
df = pd.DataFrame({'Text': ["This car is fast, agile and large and wide", "This wagon is slow, sluggish, small and compact with alloy wheels"]} )
它创建表:
Text
0 This car is fast, agile and large and wide
1 This wagon is slow, sluggish, small and compact with alloy wheels
还有一本我想从中提取的分类词词典。这些单词都是没有符号的自然语言单词,可以包括短语,例如本例中的“alloy wheels”(这不一定是字典,我只是觉得这是最好的方法):
myDict = {
"vehicle": ["car", "wagon"],
"speed": ["fast", "agile", "slow", "sluggish"],
"size": ["large", "small", "wide", "compact"]
"feature": ["alloy wheels"]
}
根据这个,我想创建一个如下所示的表:
| Text | vehicle | speed | size | feature |
| ----------------------------------------------------------------- | ------- | -------------- | -------------- | ------------ |
| This car is fast, agile and large and wide | car | fast, agile | large, wide | NaN |
| This wagon is slow, sluggish, small and compact with allow wheels | wagon | slow, sluggish | small, compact | alloy wheels |
为提前求助干杯!很想使用正则表达式,但欢迎任何解决方案!
有很多方法可以解决这个问题。我可以从一个方法开始:定义一个函数,如果它们与你的句子匹配,它将返回一个单词列表。
def get_matching_words(sentence, category_dict, category):
matching_words = list()
for word in category_dict[category]:
if word in sentence:
matching_words.append(word)
return matching_words
然后,您希望将此函数应用于数据帧。
df["vehicle"] = df.apply(lambda x: get_matching_words(x, "vehicle", my_dict)
df["speed"] = df.apply(lambda x: get_matching_words(x, "speed", my_dict)
这里要添加的唯一内容是将列表连接成字符串,而不是返回列表。
def get_matching_words(sentence, category_dict, category):
matching_words = list()
for word in category_dict[category]:
if word in sentence:
matching_words.append(word)
return ",".join(matching_words)
希望这有帮助
我想读一个文本文件,打印出已知单词前面的单词,比如Java中的xxx。我使用Scanner类用java编写了这段代码。但是这段代码只打印了“xxx”前面的一半单词,而“xxx”前面的一些单词则丢失了。我想知道是什么问题,你能解决这个代码吗。 测试文件包含类似的内容
问题内容: 有谁知道从文本中仅提取名词的最简单方法? 我听说过TreeTagger工具,但尝试尝试一下,但由于某种原因而无法使用。 有什么建议? 谢谢菲尔 编辑: 那是我的代码,英语是语言。我遇到了错误:new TokenHandler(){}类型必须实现继承的抽象方法TokenHandler.token。难道我做错了什么? 问题答案: 首先,您必须标记文本。这看似微不足道(在任何空格处分割都可以
问题内容: 假设您有一个像这样的文本文件:http : //www.gutenberg.org/files/17921/17921-8.txt 有没有人有一个好的算法或开放源代码从文本文件中提取单词?如何获得所有单词,同时避免使用特殊字符,并保留诸如“ it’s”之类的内容… 我在用Java工作。谢谢 问题答案: 这听起来像是正则表达式的正确工作。如果您不知道如何开始,以下是一些Java代码,可以
问题内容: 有更有效的方法吗?我的代码读取一个文本文件并提取所有名词。 如何减少此代码的时间复杂度?有没有办法避免使用嵌套的for循环? 提前致谢! 问题答案: 如果您不接受其他选项,请签出。它可以轻松提取所有名词和名词短语:
问题内容: 我正在尝试获取词典列表中所有键的列表,以便填写csv.DictWriter的fieldnames参数。 以前,我有这样的事情: 我当时习惯于使用列表中的第一本字典并提取其键。 现在我有了类似的东西,其中一个字典比另一个字典具有更多的key:value对(可能是任何结果)。新密钥是根据来自API的信息动态添加的,因此它们可能会或可能不会出现在每个字典中,而且我事先也不知道会有多少个新密钥
问题内容: 好的,所以我有这个yaml文件,我想替换一个字符串 与字符串 但是我不知道该怎么办。这是完整的Yaml文件 问题答案: 假设您使用的操作系统不错,并且您的YAML文档称为: