标签: text-processing

将`find`之类的输出转换为`tree`之类的输出

该问题是ZipArchive()输出的树形格式问题的广义版本。


在我浪费时间编写此(* nix命令行)实用程序之前,最好先弄清是否有人已经编写了该实用程序。我想要一个实用程序,它将作为其标准输入获得一个列表,例如由返回的列表,find(1)并输出与之相似的列表。tree(1)

例如:

输入:

/fruit/apple/green
/fruit/apple/red
/fruit/apple/yellow
/fruit/banana/green
/fruit/banana/yellow
/fruit/orange/green
/fruit/orange/orange
/i_want_my_mommy
/person/men/bob
/person/men/david
/person/women/eve
Run Code Online (Sandbox Code Playgroud)

输出量

/
|-- fruit/
|   |-- apple/
|   |   |-- green
|   |   |-- red
|   |   `-- yellow
|   |-- banana/
|   |   |-- green
|   |   `-- yellow
|   `-- orange/
|       |-- green
|       `-- orange
|-- i_want_my_mommy
`-- person/
    |-- men/
    |   |-- bob
    |   `-- david
    `-- women/
        `-- eve
Run Code Online (Sandbox Code Playgroud)

用法应类似于:

list2tree --delimiter="/" < …
Run Code Online (Sandbox Code Playgroud)

unix tree text-processing utility

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

如何从文件中所有引用的文本中删除换行符?

我已从数据库导出CSV文件.某些字段是较长的文本块,可以包含换行符.从该文件中仅删除双引号内的换行符,但保留所有其他换行符的最简单方法是什么?

我不在乎它是否使用Bash命令行一个衬垫或简单的脚本,只要它工作.

例如,

"Value1", "Value2", "This is a longer piece
    of text with
    newlines in it.", "Value3"
"Value4", "Value5", "Another value", "value6"
Run Code Online (Sandbox Code Playgroud)

应删除较长文本内部的换行符,但不删除分隔两行的换行符.

python csv bash command-line text-processing

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

空字符串在C++中是否包含空字符串?

我对其中一个问题的评论中有一个有趣的论点.我的对手声称声明""没有包含""错误.

我的理由是,如果""包含另一个"",那个也包含"",依此类推.

谁错了?

PS

我在说一个 std::string

私人参建居屋

我不是在谈论子串,但即使我将我的问题"添加为子串",它仍然没有意义.空子字符串是无意义的.如果允许空字符串包含在字符串中,则意味着您具有无限的空子字符串.那是什么意思?

编辑:

我是唯一认为这个功能有问题的人std::string::find吗?

C++参考清楚地说

返回值:第一个匹配的第一个字符的位置.

好吧,让我们假设一分钟有意义并运行此代码:

string empty1 = "";
string empty2 = "";

int postition = empty1.find(empty2);

cout << "found \"\" at index " << position << endl;
Run Code Online (Sandbox Code Playgroud)

输出是: found "" at index 0

无意义部分:如何在长度为0的字符串中存在索引0?这是无稽之谈.

为了能够甚至一个零位置,该字符串必须至少为1个字符长.

在这种情况下C++给出了一个例外,这证明了我的观点:

cout << empty2.at( empty1.find(empty2) ) << endl;
Run Code Online (Sandbox Code Playgroud)

如果它真的包含一个空字符串,那么将其打印出来就没问题了.

c++ string portability text-processing contains

4
推荐指数
3
解决办法
4151
查看次数

识别python中的动词时态

如何使用Python + NLTK来识别句子是指过去/现在/将来?

我只能使用POS标记吗?这似乎有点不准确,在我看来,我需要考虑句子上下文而不仅仅是单词.

对于另一个可以做到这一点的图书馆的任何建议?

python text-processing nlp machine-learning nltk

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

从单个字符串中删除停用词

我的查询是停用词string = 'Alligator in water'在哪里in.如何删除它以便获得stop_remove = 'Alligator water'输出.我试过它,ismember但它返回匹配单词的整数值,我想得到剩余的单词作为输出.

in 只是一个例子,我想删除所有可能的停用词.

matlab text-processing stop-words

4
推荐指数
1
解决办法
3634
查看次数

在某个单词后删除字符串中的字符 - excel

我有一个导入数据列表,在excel/google电子表格中格式化如下.在A列中,我有完整的数据,在B中我试图去掉单词左边的数据ON.

FULL DATA                      |      STRIPPED DATA


NNK GOV ON 31 AUG CDE          |      NNK GOV 
GIFFGAFF.COM ON 30 AUG CDE     |      GIFFGAFF.COM
TMRCO STORES  ON 12 AUG   CDE  |      TMRCO STORES
Run Code Online (Sandbox Code Playgroud)

我正在使用以下forumal,但它落在有非均匀空白区域的地方,因为最后一个条目.

=LEFT(a1, LEN(a1)-14)

有没有更强大的方法我可以写这个,所以当没有统一的空格或"CDE"之后的附加措辞时,它会失败吗?

我在这里创建了一个共享的谷歌电子表格作为便笺簿:https://docs.google.com/spreadsheets/d/1iieR_hAk8qJpy8W6Qq7ww9-640o-HZMFLNNjecps6m4/edit#gid=0

我使用谷歌电子表格,虽然我已将此问题标记为excel,因为我发现有很多共享功能.


excel text-processing strip google-sheets

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

如何通过空字符使grep单独输出?

假设我们正在对一堆文件进行多行正则表达式模式搜索,并且我们想从 grep 中提取匹配项。默认情况下,grep 输出由换行符分隔的匹配项,但由于我们使用的是多行模式,这会造成我们无法轻松提取单个匹配项的不便。

例子

grep -rzPIho '}\n\n\w\w\b' | od -a
Run Code Online (Sandbox Code Playgroud)

根据文件树中的文件,这可能会产生类似的输出

0000000   }  nl  nl   m   y  nl   }  nl  nl   i   f  nl   }  nl  nl   m
0000020   y  nl   }  nl  nl   m   y  nl   }  nl  nl   i   f  nl   }  nl
0000040  nl   m   y  nl
0000044
Run Code Online (Sandbox Code Playgroud)

如您所见,我们无法拆分换行符以获得进一步处理的匹配项,因为匹配项本身包含换行符。

什么不起作用

现在--null(or -Z) 仅与 结合使用-l,这使得 grep 仅列出文件名而不是匹配项,因此这在这里无济于事。

请注意,这不是find 的 -print0 和 xargs 的 -0 开关是否有等价的 grep的副本,因为该问题的要求不同,因此可以使用替代技术来回答。

那么,我们怎样才能做到这一点呢?也许将 grep …

unix bash grep text-processing null-character

4
推荐指数
1
解决办法
1557
查看次数

使用 python Natural Language Toolkit 阅读孟加拉语

我想在 NLTK 的 CategorizedPlainCorpusReader 中阅读孟加拉语文本。对于我在 gedit 文本编辑器中的孟加拉语文本文件的这个快照:

在此处输入图片说明

崇高文本编辑器中的文件快照:

在此处输入图片说明

从快照中可以看出问题所在。问题是 Unicode 组合问题(虚线环是一个死的赠品)。这是用于阅读文本的代码段:

>>> path = os.path.expanduser('~/nltk_data/corpora/Bangla')
>>> from nltk.corpus.reader import CategorizedPlaintextCorpusReader
>>> from nltk import RegexpTokenizer
>>> word_tokenize = RegexpTokenizer("[\w']+")
>>> reader = CategorizedPlaintextCorpusReader(path,r'.*\.txt',cat_pattern=r'(.*)_.*',word_tokenizer=word_tokenize)
>>> reader.sents(categories='pos')
Run Code Online (Sandbox Code Playgroud)

输出是:

在此处输入图片说明

输出应该是'?????' 而不是 '???' '?'。可以做什么??提前致谢。

python text-processing nlp

4
推荐指数
1
解决办法
2278
查看次数

python中文本清理/处理的管道

我对 python 环境(jupyter notebook)很陌生,我正在尝试处理相对庞大的文本数据。我想通过应用以下步骤并按相同顺序来处理它:

去除空格、小写、词干、去除标点符号但保留词内破折号或连字符、去除停用词、去除符号、去除空格、

我希望我可以得到一个可以执行任务的函数,而不是单独执行它们,是否有任何单个库和/或函数可以提供帮助?如果不是,那么定义一个函数来执行它们的最简单方法是什么?

text-processing nlp nltk python-3.x jupyter-notebook

4
推荐指数
1
解决办法
4424
查看次数

除空行外,每行都用单引号引起来

我的目标是在文件的每一行中添加单撇号,并跳过空行。

file.txt

Quote1
Quote2

Quote3
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经使用sed:

sed -e "s/\(.*\)/'\1'/"
Run Code Online (Sandbox Code Playgroud)

哪个可以工作,但也会在空行中产生撇号:

'Quote1'
'Quote2'
''
'Quote3'
Run Code Online (Sandbox Code Playgroud)

我的目标:

'Quote1'
'Quote2'

'Quote3'
Run Code Online (Sandbox Code Playgroud)

我如何通过使用sed来实现这一目标,或者应该是awk。

unix awk text-processing sed

4
推荐指数
1
解决办法
77
查看次数