我正在尝试使用 Gensim 中的 filter_extremes 函数按频率过滤掉令牌(https://radimrehurek.com/gensim/corpora/dictionary.html)。具体来说,我有兴趣过滤掉“频率低于 no_below 文档”和“频率高于 no_above 文档”中出现的单词。
id2word_ = corpora.Dictionary(texts)
print(len(id2word_))
id2word_.filter_extremes(no_above = 0.600)
print(len(id2word_))
Run Code Online (Sandbox Code Playgroud)
第一个打印语句给出 11918,第二个打印语句给出 3567。但是,如果我执行以下操作:
id2word_ = corpora.Dictionary(texts)
print(len(id2word_))
id2word_.filter_extremes(no_below = 0.599)
print(len(id2word_))
Run Code Online (Sandbox Code Playgroud)
第一个打印语句给出 11918(如预期),第二个打印语句给出 11406。id2word_.filter_extremes(no_below = 0.599)和id2word_.filter_extremes(no_above = 0.600)加起来不应该等于总字数吗?然而,11406 + 3567 > 11918,那么这个总和怎么会超过语料库的单词数呢?这是没有意义的,因为过滤器应该根据文档中的解释覆盖不重叠的单词。
如果您有任何想法,我将非常感谢您的意见!谢谢!
我有一个 .csv,其中每一行对应一个人(第一列)以及具有该人可用值的属性。我想提取该属性可用的人员的特定属性的名称和值。该文档的结构如下:
name,attribute1,value1,attribute2,value2,attribute3,value3
joe,height,5.2,weight,178,hair,
james,,,,,,
jesse,weight,165,height,5.3,hair,brown
jerome,hair,black,breakfast,donuts,height,6.8
Run Code Online (Sandbox Code Playgroud)
我想要一个如下所示的文件:
name,attribute,value
joe,height,5.2
jesse,height,5.3
jerome,height,6.8
Run Code Online (Sandbox Code Playgroud)
使用这篇之前的文章,我尝试了几种不同的awk方法,但仍然无法获取第一列和任何具有所需属性值(例如高度)的列。例如以下内容返回所有内容。
awk -F "height," '{print $1 "," FS$2}' file.csv
Run Code Online (Sandbox Code Playgroud)
我grep只能处理具有高度的行,但如果可以的话,我更愿意在一行中完成所有操作。
我仍在使用这个庞大的URL列表,我收到的所有帮助都很棒.
目前我的列表看起来像这样(但是17000个URL):
http://www.domain.com/page?CONTENT_ITEM_ID=1
http://www.domain.com/page?CONTENT_ITEM_ID=3
http://www.domain.com/page?CONTENT_ITEM_ID=2
http:// www .domain.com/page?CONTENT_ITEM_ID = 1
http://www.domain.com/page?CONTENT_ITEM_ID=2
http://www.domain.com/page?CONTENT_ITEM_ID=3
http://www.domain.com/页面?CONTENT_ITEM_ID = 3
我可以过滤掉重复项没有问题,有几种方法,awk等.我真正想做的是取出重复的URL,但同时计算列表中存在的URL数和打印次数带管道分隔符的URL旁边的计数.处理完列表后,它应如下所示:
网址| 计算
http://www.domain.com/page?CONTENT_ITEM_ID=1 | 2
http://www.domain.com/page?CONTENT_ITEM_ID=2 | 2
http://www.domain.com/page?CONTENT_ITEM_ID=3 | 3
实现这一目标的最快方法是什么方法?
干杯
我通常需要为我的研究做大量的文本处理,例如从所有行中删除最后一个标记,从每一行中提取前两个标记,将每一行分成标记等.
执行此操作的最佳方法是什么?我应该为此学习Perl吗?或者我应该学习某种shell命令?主要关注的是速度.如果我需要为这些东西编写长代码,它就会失败.
编辑:
我开始在@Mimisbrunnr的推荐下学习sed,已经可以做我需要的了.但似乎人们更喜欢awk.所以,会尝试.感谢你的回复.
我成功地将句子分成了一个单词StringTokenizer.
是否有一个工具,它能够像复合词拆分Projektüberwachung成其零件Projekt和überwachung甚至一些较长的?
分割复合词的原因是我想要进行文本提取.我想这样的短语转换Projektplanung und -überwachung成两个部分Projektplanung和Projektüberwachung.分裂复合词是我的第一步.
我想从英文散文的输入字符串中删除所有撇号,但保留原始含义和大小写,即
在java中实现这一目标的最佳/最简单方法是什么?
你如何在一列最接近a的数字中找到5个数字$VariableNumber?
例如,如果$VariableNumber= 30则:
示例输入文件:
50
100
70
40
20
10
65
41
92
Run Code Online (Sandbox Code Playgroud)
示例输出:
20
40
41
10
50
Run Code Online (Sandbox Code Playgroud)
有一个答案,有人在之前发布的其他地方找到了特定行中特定列中与给定值最接近的数字匹配,如下所示:
awk -v col_num="3" -v value="$Number" '
func abs(x) { return (x<0) ? -x : x }
{
distance = abs($col_num - value)
}
NR==1 || distance<shortest_distance {
shortest_distance = distance
nearest_value = $col_num
}
END {
print nearest_value
}
'
Run Code Online (Sandbox Code Playgroud)
但我无法适应它
我有一个20000探针的列表,有没有办法使用sed/awk提取每个探针的前三行/出现?
Example of dataset:
Probe1 A GTTAGAGGAGGTGGAAGAGC
Probe1 B CTGAGGTCGGGACGGAGCAC
Probe1 C GATGTAGGCGGTTGGCGTGG
Probe1 D GTTGGCGAAGTCACATCTAG
Probe1 E CATGTCGCCGACTCCGTCGA
Probe1 F GTGATGTTCTGAGTACATAG
Probe3 A GATTGTAGGTTTCCTGCCAG
Probe3 L ACCCAGCCAGGGGAAAACCA
Probe3 Z GGAGATGTAGGCGGTTGGCG
Probe3 Y GGAGATGTAGGCCTTAAAAA
Probe3 D GATTGTAGGGGTCCTGCCAG
Run Code Online (Sandbox Code Playgroud)
期望的输出:
Probe1 A GTTAGAGGAGGTGGAAGAGC
Probe1 B CTGAGGTCGGGACGGAGCAC
Probe1 C GATGTAGGCGGTTGGCGTGG
Probe3 A GATTGTAGGTTTCCTGCCAG
Probe3 L ACCCAGCCAGGGGAAAACCA
Probe3 Z GGAGATGTAGGCGGTTGGCG
Run Code Online (Sandbox Code Playgroud) 我正在关注本文档集群教程。作为输入,我提供了一个txt文件,可以在此处下载。它是3个其他txt文件的组合文件,并使用\ n进行了分隔。创建tf-idf矩阵后,我收到此警告:
,, UserWarning:您的stop_words可能与您的预处理不一致。标记停用词会生成标记['abov','afterafter','alon','alreadi','always','ani','anoth','anyon','anyth','anywher','becam' ,'becaus','becom','befor','besid','cri','describ','dure','els','elsewher','empti','everi','everyon',' Everyth”,“ everywher”,“ fifti”,“ forti”,“ henc”,“ hereaft”,“ herebi”,“ howev”,“ hundr”,“ inde”,“ mani”,“ meanwhil”,“ moreov” ,“ nobodi”,“ noon”,“ noth”,“ nowher”,“ onc”,“ onli”,“ otherwis”,“ ourselv”,“ perhap”,“ pleas”,“ sever”,“ sinc”,“ sincer”,“ sixti”,“ someon”,“ someth”,“ sometim”,“ somewher”,“ themselv” ,“ thenc”,“ thereaft”,“ therebi”,“ therefor”,“ togeth”,“ twelv”,“ twenti”,“ veri”,“ whatev”,“ whenc”,“ whenev”,“ wherea”,“ whereaft”,“ wherebi”,“ wherev”,“ whi”,“ yourselv”]不在stop_words中。“ stop_words”。%sorted(不一致))”。'thereaft','therebi','therefor','togeth','twelv','twenti','veri','whatev','whenc','whenev','wherea','whereaft','wherebi ','wherev','whi','yourselv']不在stop_words中。“ stop_words”。%sorted(不一致))”。'thereaft','therebi','therefor','togeth','twelv','twenti','veri','whatev','whenc','whenev','wherea','whereaft','wherebi ','wherev','whi','yourselv']不在stop_words中。“ stop_words”。%sorted(不一致))”。
我想这与复词和停用词的顺序有关,但是由于这是我在txt处理中的第一个项目,我有点迷路,而且我不知道该如何解决...
import pandas as pd
import nltk
from nltk.corpus import stopwords
import re
import os …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的字符串:
sentence = 'This is a nice day'
Run Code Online (Sandbox Code Playgroud)
我想要以下输出:
output = ['This is', 'a nice', 'day']
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我将字符串分割为n= 3或更多的空格,这就是为什么像上面显示的那样分割字符串。
我怎样才能有效地做到这一点n?
text-processing ×10
awk ×2
java ×2
python ×2
sed ×2
string ×2
tokenize ×2
bash ×1
corpus ×1
dictionary ×1
duplicates ×1
gensim ×1
linux ×1
stemming ×1
stop-words ×1
tf-idf ×1
url ×1