标签: text-processing

删除Python中的Chars

有谁知道如何删除特定字符后面的所有字符?

像这样:

http://google.com/translate_t
Run Code Online (Sandbox Code Playgroud)

http://google.com
Run Code Online (Sandbox Code Playgroud)

python text-processing

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

What lemmatizer can i use for arabic text using python?

How can I get lemmas for Arabic words? I tried the ISRI Arabic Stemmer from NLTK but it returns roots of words:

from nltk.stem.isri import ISRIStemmer
st = ISRIStemmer()
print st.stem(u'????????')
Run Code Online (Sandbox Code Playgroud)

It returns the root ??? and i want the lemma ??????

python text-processing stanford-nlp python-2.7 python-3.x

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

使用 AWK 的 Min-Max 归一化

我不知道为什么我无法遍历所有记录。目前它用于最后一条记录并为其打印规范化。

归一化公式:

New_Value = (value - min[i]) / (max[i] - min[i])

程序

{
    for(i = 1; i <= NF; i++)
    {
        if (min[i]==""){  min[i]=$i;}     #initialise min
        if (max[i]==""){  max[i]=$i;}     #initialise max
        if ($i<min[i]) {  min[i]=$i;}     #new min
        if ($i>max[i]) {  max[i]=$i;}     #new max
    }

}
END {
    for(j = 1; j <= NF; j++)
        {
        normalized_value[j] = ($j - min[j])/(max[j] - min[j]);
        print $j, normalized_value[j];
    }
}
Run Code Online (Sandbox Code Playgroud)

数据集

4 14 24 34
3 13 23 33 
1 11 21 31 …
Run Code Online (Sandbox Code Playgroud)

bash shell awk text-processing gawk

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

Python删除额外的特殊Unicode字符

我正在用 python 处理一些文本,它在内部已经是 unicode 格式,但我想摆脱一些特殊字符并用更标准的版本替换它们。

我目前有一条看起来像这样的线路,但它变得越来越复杂,我认为它最终会带来更多麻烦。

tmp = infile.lower().replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u2013", "").replace(u"\u2026", "")
Run Code Online (Sandbox Code Playgroud)

例如U \ 2018 \ u2019是单引号。这些在某种程度上是可以接受的,但对于这种类型的文本处理,我认为不需要它们。

喜欢的东西这个U \ 2013 EN DASH和肯定是不需要的水平省略。

有没有办法删除这些引号并使用简单的标准引号,这些引号不会破坏“使用 nltk”的文本处理,并删除诸如 EN DASH、水平省略号之类的内容,而不会像我看到的那样发出如此巨大的呼叫,就像我看到的那样开始抬头上面的示例代码?

python unicode text-processing special-characters nltk

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

句号后添加空格

在 python 中做这个简单的文本修复的干净方法是什么 - 检查每个句号(除了最后一个)后面是否跟有空格。假设点后面没有空格是我们在输入字符串中唯一可能得到的错误。

我正在这样做:

def textFix(text):
    result = re.sub('\.(?!\s)', '. ', text)
    if (result[len(result) - 1]) == ' ':
        return result[:-1]
    return result
Run Code Online (Sandbox Code Playgroud)

python regex text-processing replace

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

如何将一列中的值除以另一列并在新列中打印结果?

我比较新,awk所以我有一个关于做除法并将结果打印在新列中的简单问题。例如:

head data

1   13273      .  G   C   563  5  .  25    128
1   202259     .  G   T   675  8  .  12    130
1   598934     .  C   C   756  9  .  17    231
1   634112     .  T   C   125  1  .  32    89
1   779762     .  G   A   675  5  .  28    187
Run Code Online (Sandbox Code Playgroud)

我想将第 9 列除以第 10 列并将结果打印在新的第 11 列中,最好将新结果从高到低排序。例如:

1   634112     .  T   C   125  1  .  32    89    0.360
1   13273      .  G   C   563  5 …
Run Code Online (Sandbox Code Playgroud)

linux awk text-processing

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

使用-v选项以grep -A反转多行grep结果

我有一个类似以下的列表:

Name_JR_1
1.1.1.1
Name_SR_1
2.2.2.2
Name_NONE_1
3.3.3.3
Run Code Online (Sandbox Code Playgroud)

如果要使用以下数字语法选择所有关联的名称,则可以查找模式并使用该-A1选项打印匹配的行以及after上下文或下一行,如下所示:

grep "JR" -A1 file_name

这将打印我想要的:

Name_JR_1
1.1.1.1
Run Code Online (Sandbox Code Playgroud)

但是,我需要一种解决方案,可以删除所有与搜索模式匹配的条目。但是,使用-v带有此语法的选项不会给我想要的结果:

grep -v "JR" -A1 file_name
Run Code Online (Sandbox Code Playgroud)

我希望此命令后的输出如下所示:

Names_SR_1
2.2.2.2
Name_NONE_1
3.3.3.3.
Run Code Online (Sandbox Code Playgroud)

linux grep text-processing

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

从这么多文件的开头删除数字的最快方法是什么?

我有1000个文件,每个文件有一百万行.每一行都有以下形式:

a number,a text
Run Code Online (Sandbox Code Playgroud)

我想从每个文件的每一行的开头删除所有数字.包括 ,

例:

14671823,aboasdyflj -> aboasdyflj
Run Code Online (Sandbox Code Playgroud)

我在做的是:

os.system("sed -i -- 's/^.*,//g' data/*")
Run Code Online (Sandbox Code Playgroud)

它工作正常,但需要花费大量的时间.

最快的方法是什么?

我在python中编码.

regex bash shell performance text-processing

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

使用Perl的正则表达式查找项目

我有一个设置用于从文本文件中检索数据的Perl脚本,但有一件事情不会显示是以星号开头的.这是我的代码:

while(<INFILE>) {
   chomp $_;

    if (m/^\s*$/) {
        next;
    }

    my @fields = split(/\  /,$_);
    my @output;

    foreach my $field(@fields) {
        if($field =~ /^\*?[ABMQRWY][A-Z0-9]{4}235 / ) {
            push @output,$field;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的if语句抓住了8个字符长的所有内容,但有时在作业面前有*它不会拉动.我该如何包含它?我知道我需要逃避它,但不知道该把它放在哪里.

以下是我要提取的数据的一些示例:

W50DW235 DW
M50DW235 DW
Q0608235 08
APJ40235 40
M3515235 15
M34DW235 DW
M3408235 08
RES08235 08
BSP20235 20
W1208235 08
B3008235 08
Run Code Online (Sandbox Code Playgroud)

这是文件中的原始行:

18122/0655 18122/0700  W50DW235 DW        LEV001  002  D50DW235
18122/0735 18122/0740  M50DW235 DW        LEV002  002  W50DW235
Run Code Online (Sandbox Code Playgroud)

它不会用星号拉出的线是这样的:

18123/0300 18123/0400 *D1708235 08        LEV001  001
Run Code Online (Sandbox Code Playgroud)

为了提取数据,我使用以下方法来捕获具有两个空格的项目:

my …
Run Code Online (Sandbox Code Playgroud)

regex perl text-processing escaping

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

替换每行中出现的前 3 个字符

我有一个以制表符分隔的遗传变异文件,其中有一INFO列包含许多分号分隔的标签:

Chr Start   End Ref Alt ExAC_ALL    ExAC_AFR    ExAC_AMR    ExAC_EAS    ExAC_FIN    ExAC_NFE    ExAC_OTH    ExAC_SAS    Otherinfo   QUAL    DP  Chr Start       Ref Alt QUAL    FILTER  INFO
1   15847952    15847952    G   C   .   .   .   .   .   .   .   .   .   241.9   76196   1   15847952    .   G   C   241.9   PASS    AC=2;AF=0;AN=18332;BaseQRankSum=0.731;ClippingRankSum=-0.731;DP=76196;ExcessHet=3.1;FS=0;InbreedingCoeff=-0.0456;MLEAC=2;MLEAF=0;MQ=38.93;MQRankSum=0.515;NEGATIVE_TRAIN_SITE;QD=10.52;ReadPosRankSum=0.89;SOR=0.481;VQSLOD=-1.406        culprit=MQ
1   15847963    15847963    A   C   .   .   .   .   .   .   .   .   .   1607.1  126156  1   15847963    .   A   C   1607.1  PASS    AC=2;AF=0;AN=22004;BaseQRankSum=0.851;ClippingRankSum=-0.419;DP=126156;ExcessHet=3.4904;FS=0;InbreedingCoeff=0.0299;MLEAC=2;MLEAF=0;MQ=59.29;MQRankSum=0.18;QD=1.55;ReadPosRankSum=0.067;SOR=0.651;VQSLOD=0.995        culprit=QD
1   15847964    15847966    GCC …
Run Code Online (Sandbox Code Playgroud)

text-processing replace sed bioinformatics

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