【发布时间】:2022-01-17 08:25:50
【问题描述】:
我正在尝试使用 RegEx 制作一个字典,其中的键是文本文件中的二元组,其值是这些二元组在文本中出现的次数。
我有这段代码可以让我得到二元组。它并不完美,因为二元组应该像 "hello, world" , "world, full" ""full, of" "of, wonderful" "wonderful, things",但在我的打印输出中,二元组的顺序与此不同,所以我不确定我是否做得对。
我不知道如何将这些让二元组进入字典的正则表达式短语与那些二元组的键和反映其在整个原始文本文件中的计数的值相关联。非常感谢任何帮助。
import re
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
with open('/Users/adamstark/PycharmProjects/Computational_Methods_Course/Assignments/Final/Jules_Verne_From_the_Earth_to_Moon.txt') as file:
txt1 = file.readlines()
# Getting bigrams
txt1 = [remove_string_special_characters(s) for s in txt1]
vectorizer = CountVectorizer(ngram_range = (2,2))
X1 = vectorizer.fit_transform(txt1)
features = (vectorizer.get_feature_names())
print("\n\nFeatures : \n", features)
print("\n\nX1 : \n", X1.toarray())
【问题讨论】:
-
你永远不会在这段代码中的任何地方调用
remove_string_special_characters。还有更多你没有给我们看的吗?您可以删除text1 = []行。这既是一个错字,也是不必要的。 -
不,这就是我所拥有的一切。我不确定接下来要采取什么步骤。
-
您的代码运行良好。这组二元组按字母顺序打印,因此它们不会按源材料的顺序排列。并且可以删除不调用的预处理函数;看起来矢量化器已经为您完成了所有这些工作。
-
谢谢,我整理了它以反映您所指出的内容,并结合了 Manial A 在下面向我展示的内容,您还提到了“remove_string_special_characters”的缺失。现在我正在尝试解决名称错误:“名称'remove_string_special_characters'未定义”并希望将二元组格式化为所描述的字典格式。
标签: python regex dictionary