小编Rug*_*man的帖子

如何在Unix命令行或shell脚本中混洗文本文件的行?

我想随机地随机播放文本文件的行并创建一个新文件.该文件可能有几千行.

我怎样才能做到这一点与cat,awk,cut等?

random shell awk command-line shuffle

275
推荐指数
12
解决办法
16万
查看次数

在Matplotlib中将图例作为单独的图片获取

我正在开发一个Web应用程序,并希望在页面的不同位置显示一个图形及其图例.这意味着我需要将图例保存为单独的png文件.这在Matplotlib中是否可能以一种或多或少的直接方式实现?

python matplotlib

30
推荐指数
7
解决办法
2万
查看次数

在MongoDB中存储非常大的文档

简而言之:如果您有大量不同大小的文档,那么相对较少的文档达到最大对象大小,那么在MongoDB中存储这些文档的最佳做法是什么?

我有一组文件,如:

{_id: ...,
  values: [12, 13, 434, 5555 ...]
}
Run Code Online (Sandbox Code Playgroud)

值列表的长度因文档的不同而异.对于大多数文档来说,它会有一些元素,少数元素会有数千万个元素,我将在MongoDB中达到最大对象大小限制.麻烦是我提出的任何特殊解决方案,因为那些非常大(而且相对较少)的文档可能会影响我如何存储小文档,否则这些文档会在MongoDB集合中幸福地生活.

据我所知,我有以下选择.我将不胜感激任何关于这些的优点和缺点的输入,以及我错过的任何其他选项.

1)使用另一个数据存储:这似乎太激烈了.我喜欢MongoDB,并不像我达到许多对象的大小限制.在单词的情况下,我的应用程序可以不同地处理非常大的对象和其他对象.它似乎并不优雅.

2)使用GridFS存储值:像传统数据库中的blob一样,我可以保留文档中前几千个值的元素,如果列表中有更多元素,我可以将其余的元素保存在GridFS对象中二进制文件.我无法在这部分进行搜索,但我可以忍受这一点.

3)滥用GridFS:我可以将每个文档保存在gridFS中.对于大多数(小)文档,二进制块将为空,因为文件集合将能够保留所有内容.其余的我可以将多余的元素保留在块集合中.与选项#2相比,这是否会带来开销?

4)真的滥用GridFS:我可以使用GridFS的文件集合中的可选字段来存储值中的所有元素.GridFS是否也为文件集合进行智能分块?

5)使用额外的"关系"集合来存储一对多关系,但此集合中的许多文档很容易超过一千亿行.

mongodb nosql gridfs

14
推荐指数
1
解决办法
6431
查看次数

在Hadoop中流式传输或自定义Jar

我正在Hadoop(在亚马逊的EMR上)运行流媒体作业,使用Python编写的映射器和reducer.我想知道如果我在Java中实现相同的mapper和reducer(或使用Pig),我将体验到的速度提升.

特别是,我正在寻找人们从流式传输到自定义jar部署和/或Pig的经验,以及包含这些选项的基准比较的文档.我发现了这个问题,但答案对我来说不够具体.我不是在寻找Java和Python之间的比较,而是在Hadoop中的自定义jar部署和基于Python的流式传输之间进行比较.

我的工作是从Google Books NGgram数据集中读取NGram计数并计算汇总度量.似乎计算节点上的CPU利用率接近100%.(我想听听你对CPU绑定或IO绑定工作的差异的看法).

谢谢!

AMAC

python java streaming hadoop mapreduce

11
推荐指数
1
解决办法
2167
查看次数

Matlab图中的半透明标记

我想绘制带有填充标记的散点图并使其半透明,因此当两个或多个标记重叠时,重叠区域将更加不透明.

我天真地想

sg = scatter(rand(1000,1),rand(1000,1), 'filled');
alpha(0.5)
Run Code Online (Sandbox Code Playgroud)

会工作,但事实并非如此.也

set(get(sg, 'Children'), 'FaceAlpha', 0.2)
Run Code Online (Sandbox Code Playgroud)

不起作用.有任何想法吗?

matlab transparency matlab-figure

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

如何在字符串中搜索大写字母并返回带有和不带大写字母的单词列表

我的作业分配是编写一个程序,从用户读取一个字符串,并从输入中创建一个单词列表.创建两个列表,一个包含至少包含一个大写字母和一个单词的单词.包含任何大写字母.使用单个for循环打印出带有大写字母的单词,然后是不带大写字母的单词,每行一个单词.

我所知道的不正确:

s= input("Enter your string: ")
words = sorted(s.strip().split())
for word in words:
    print (word)
Run Code Online (Sandbox Code Playgroud)

因为只有Capitol在第一个字符时它才会对序列进行排序.对于此分配,角色可以出现在单词中的任何位置.如,'tHis is a sTring'.

我正在玩一个看起来与此类似的解决方案,只是为了看看我是否能用CAPS得到这些话.但它只是不工作:

    s = input("Please enter a sentence: ")
while True:
    cap = 0
    s = s.strip().split()
    for c in s:
        if c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
            print(c[:cap])
            cap += 1
    else:
        print("not the answer")
        break 
Run Code Online (Sandbox Code Playgroud)

但正则表达式可能比写出整个字母表更好.

任何帮助深表感谢.不用说我是python的新手.

python

7
推荐指数
2
解决办法
5万
查看次数

在Lucene中对Twitter帖子进行标记

我的问题简而言之:有没有人知道Lucene 的TwitterAnalyzerTwitterTokenizer

更详细的版本:

我想索引号在Lucene的鸣叫,并保持类似的条款@user#hashtag完好.StandardTokenizer不起作用,因为它丢弃了标点符号(但它还有其他有用的东西,比如保留域名,电子邮件地址或识别首字母缩略词).我怎样才能拥有一台分析仪,它可以完成StandardTokenizer所做的一切,但不会触及像@user和#hashtag这样的术语?

我目前的解决方案是在将推文发送到分析器之前对其进行预处理,并用其他字母数字字符串替换字符.例如,

String newText = newText.replaceAll("#", "hashtag");
newText = newText.replaceAll("@", "addresstag");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法破坏了合法的电子邮件地址,但我可以忍受 这种方法有意义吗?

提前致谢!

AMAC

lucene twitter tokenize

6
推荐指数
1
解决办法
3063
查看次数

收集Lucene/Optimization中的所有匹配搜索

简介:我使用自定义收集器收集给定搜索的所有匹配的文档ID(它使用ID填充BitSet).根据我的需要,搜索和获取文档非常快,但是当涉及从磁盘中实际获取文档时,事情变得非常缓慢.有没有办法优化Lucene以加快文档收集速度?

详细信息:我正在处理维基百科的处理语料库,并将每个句子保留为单独的文档.当我搜索"计算机"时,我得到的所有句子都包含术语"计算机".目前,搜索语料库并获取所有文档ID在亚秒内工作,但获取前1000个文档大约需要20秒.获取所有文档需要相应的时间(即每1000个文档批次另外20秒).

后续搜索和文档获取花费的时间要少得多(但是,我不知道谁在进行缓存,操作系统或Lucene?)但我会搜索许多不同的术语,我不想依赖缓存,性能在第一次搜索对我来说至关重要.

我正在寻找可以提高文档获取性能的建议/技巧(如果可能的话).提前致谢!

附录:

我使用Lucene 3.0.0但我使用Jython来驱动Lucene类.这意味着,我为搜索期间检索到的每个doc id调用以下Jython类的get_doc方法:

class DocumentFetcher():  
  def __init__(self, index_name):  
    self._directory = FSDirectory.open(java.io.File(index_name))  
    self._index_reader = IndexReader.open(self._directory, True)  
  def get_doc(self, doc_id):  
    return self._index_reader.document(doc_id)  
Run Code Online (Sandbox Code Playgroud)

我的索引中有50M文档.

lucene optimization

5
推荐指数
1
解决办法
1734
查看次数

Google Web Search API仅返回前100个结果集

有没有办法在Google中搜索和检索特定查询的所有结果?我想使用自定义搜索API,但结果集的起始索引最多可以是99(http://code.google.com/apis/customsearch/v1/using_rest.html)这意味着我只能检索第一个100件物品.就我而言,结果集中大约有4000个项目.

谢谢.

api search google-api

5
推荐指数
1
解决办法
1万
查看次数

分割单词,并对文本中的带连字符和撇号单词进行分组

我需要从文本中分割单词.有时候带连字符的单词是在没有连字符的情况下编写的,撇号单词是在没有撇号的情况下写成的.还有类似的问题,例如相同单词的不同拼写问题(例如:颜色,颜色)或单个单词,它们之间用空格写入(例如:up,upto,blankspace,blank space).我需要将这些变体分组为单个表示形式,并将其插入到set/hashmap或其他位置.对于没有重音字符的重音字符单词也可能存在问题(尽管我还没有面对它们).目前,在任何空白字符和每个非字母数字处切割单词,然后将其截止,并省略停用单词.

这些索引稍后将用于文档相似性检查和搜索等.任何建议如何解决这些问题?我想到了将扫描的单词与单词表匹配的想法,但问题是专有的名词和非词典单词将被省略.

信息:我的代码是Java

text-processing information-retrieval

5
推荐指数
1
解决办法
749
查看次数

限制Jetty上Solr的内存使用量

我有一个内存有限的环境,我使用以下命令在Jetty上运行Solr:

java -jar -Xmx64M -Xmn32M -Xss512K start.jar

但是Solr实例(或Jetty)的总内存消耗似乎远高于我提供的堆限制.ps的输出是:

ps -u buradayiz -o rss,etime,pid,command

155164 01:37:40 21989 java -jar -Xmx64M -Xmn32M -Xss512K start.jar

如你所见,RSS超过150M.我该如何避免这种情况?我只是想在Solr/Jetty使用的内存比我让它们多的时候得到一个简单的OutOfMemory异常.

我知道我提供的堆限制与实际内存使用量之间可能存在差异,但差异因子为2(实际为2.5)对我来说似乎很多.我肯定错过了什么.

谢谢.

java memory solr jetty

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