标签: text-processing

使用 Gensim 中的 filter_extremes 按频率过滤标记

我正在尝试使用 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,那么这个总和怎么会超过语料库的单词数呢?这是没有意义的,因为过滤器应该根据文档中的解释覆盖不重叠的单词。

如果您有任何想法,我将非常感谢您的意见!谢谢!

python text-processing dictionary corpus gensim

3
推荐指数
1
解决办法
9469
查看次数

awk:选择匹配单词后的第一列和列中的值

我有一个 .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只能处理具有高度的行,但如果可以的话,我更愿意在一行中完成所有操作。

bash awk text-processing sed

3
推荐指数
1
解决办法
473
查看次数

计算重复的URL,尽可能快的方法

我仍在使用这个庞大的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

实现这一目标的最快方法是什么方法?

干杯

language-agnostic url text-processing duplicates

2
推荐指数
1
解决办法
882
查看次数

在Linux或Mac中进行文本处理的最佳工具是什么?

我通常需要为我的研究做大量的文本处理,例如从所有行中删除最后一个标记,从每一行中提取前两个标记,将每一行分成标记等.

执行此操作的最佳方法是什么?我应该为此学习Perl吗?或者我应该学习某种shell命令?主要关注的是速度.如果我需要为这些东西编写长代码,它就会失败.

编辑:

我开始在@Mimisbrunnr的推荐下学习sed,已经可以做我需要的了.但似乎人们更喜欢awk.所以,会尝试.感谢你的回复.

linux text-processing

2
推荐指数
1
解决办法
2205
查看次数

有没有一个工具可以在java中拆分德语复合词?

我成功地将句子分成了一个单词StringTokenizer.

是否有一个工具,它能够像复合词拆分Projektüberwachung成其零件Projektüberwachung甚至一些较长的

分割复合词的原因是我想要进行文本提取.我想这样的短语转换Projektplanung und -überwachung成两个部分ProjektplanungProjektüberwachung.分裂复合词是我的第一步.

java string text-processing tokenize

2
推荐指数
1
解决办法
2410
查看次数

去除宫缩

我想从英文散文的输入字符串中删除所有撇号,但保留原始含义和大小写,即

  • 不是 - >不是
  • 我 - >我是
  • 他们是 - >他们是
  • 不应该 - >不应该
  • 不能 - >不能
  • 约翰的 - >约翰斯(足够好)

在java中实现这一目标的最佳/最简单方法是什么?

java string text-processing

2
推荐指数
2
解决办法
1286
查看次数

找到最接近的前5名而不是最近的?

你如何在一列最接近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)

但我无法适应它

text-processing

2
推荐指数
1
解决办法
61
查看次数

使用Sed/Awk提取该行的前三个唯一实例

我有一个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)

awk text-processing sed

2
推荐指数
1
解决办法
67
查看次数

用户警告:您的stop_words可能与您的预处理不一致

我正在关注文档集群教程。作为输入,我提供了一个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)

text-processing vectorization stemming stop-words tf-idf

2
推荐指数
3
解决办法
1512
查看次数

在n个或多个空格上分割字符串

我有一个像这样的字符串:

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

python text-processing tokenize

2
推荐指数
1
解决办法
68
查看次数