从我从互联网上搜集到的工作描述来看,我已经浏览了所有的nlp流程,并找到了我找到的地方:
freq = nltk.FreqDist(lemmatized_list)
most_freq_words = freq.most_common(100)其中产出:
[('data', 179),
('experience', 86),
('work', 78),
('business', 71),
('team', 59),
('learn', 56),
('model', 49),
('skills', 47),
('science', 41),
('use', 41),
('build', 39),
('machine', 37),
('ability', 36),.....诸若此类。我的问题是,我不想考虑像“经验”,“工作”这样的词,而只考虑与数据科学相关的关键词。我猜有一个数据科学术语的语料库,我可以用它,比如我如何使用停止词语料库来不选择它们。如果有办法请告诉我,谢谢!
发布于 2019-04-27 11:08:47
我有办法让你解决你的问题。所以你需要一个,
接下来,我们有了一个频率更高的单词语料库。假设我们有一组100个这样的词,其中第一个单词的频率最高。
现在,我们使用预先训练过的单词嵌入将集合中的每个单词转换成一个向量。因此,您将有一组向量的词从语料库。我们叫它z_i吧
我们有“数据科学”这个词。也要得到一个矢量。我们叫它x吧
发布于 2019-05-01 07:21:57
总的来说,我同意安迪·M的建议。
为了解决你指出的问题,摆脱文字的工作和经验,你很可能会忽略数据科学语料库中最常见的单词,而把其余的词作为与数据科学相关的术语。
所以,以一种更复杂的方式:
general_texts = [
['a', 'sentence', 'about', 'experience'],
['another', 'sentence', 'typed', 'at', 'work'],
['work', 'experience'],
...
]
data_science_texts = [
['data', 'science', 'experience'],
['work', 'on', 'machine', 'learning'],
...
]
freqdist_gnrl = Counter()
freqdist_ds = Counter()
for text in general_texts:
freqdist_gnrl.update(text)
for text in data_science_texts:
freqdist_ds.update(text)
mostfreq_words_gnrl = freqdist_gnrl.most_common(2) # 'work', 'experience'
words_ds = [
w for w, _ in freqdist_ds.most_common()
if w not in mostfreq_words_gnrl # every word other than 'work' or 'experience'
]在本例中,我使用2作为n作为n-最常用的术语使其工作,但是,在一个更大的语料库中,您可能需要几百个单词。
应用该滤波器后,变量words_ds中的第一个k字应在一定程度上与数据科学相关。
希望这能有所帮助!
https://datascience.stackexchange.com/questions/51007
复制相似问题