小编Cht*_*ect的帖子

Ruby是否提供了使用指定编码执行File.read()的方法?

在ruby 1.9.x中,我们可以指定编码File.open('filename','r:iso-8859-1').如果我直接将许多短文件读入字符串,我通常更喜欢使用单行File.read().有没有办法可以直接指定编码,或者我是否必须采用以下方法之一?

str = File.read('filename')
str.force_encoding('iso-8859-1')
Run Code Online (Sandbox Code Playgroud)

要么

f = File.open('filename', 'r:iso-8859-1')
s = ''
while (line = f.gets)
    s += line
end
f.close
Run Code Online (Sandbox Code Playgroud)

ruby encoding file

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

Ruby,Tor和Net :: HTTP :: Proxy

如果这是一个无耻的怀疑我提前道歉:我想在我的Ruby代码中使用代理来获取一些网页.而且我想偷偷摸摸!所以我正在使用Tor.

我有Tor运行,我可以像往常一样使用Net :: HTTP.get(uri).但我无法弄清楚如何使用Net :: HTTP :: Proxy来获取uri.我也无法弄清楚如何使用Tor来帮助我的匿名提取.

任何帮助是极大的赞赏.请不要只为Net :: HTTP :: Proxy添加ruby-doc页面链接.如果我明白了,我不会在这里问这个:-)


另一种简单的方法是使用SOCKSify,但在这种情况下,我收到以下错误:

/usr/lib/ruby/gems/1.9.2-p290/gems/socksify-1.5.0/lib/socksify.rb:189:in 'socks_authenticate': SOCKS version not supported (SOCKSError)

我之前从未做过任何网络编程.任何关于此的指导也将非常有帮助.谢谢 :-)

ruby proxy tor net-http

12
推荐指数
1
解决办法
6914
查看次数

返回Stream <T>的方法是否安全?

我有一种情况,我正在读取数据库并返回a List<String>,其中每个字符串被选中并根据某些条件添加到列表中.方法签名是:

public List<String> myMethod(String query, int limit)
Run Code Online (Sandbox Code Playgroud)

第二个参数提供返回列表大小的上限(设置limit=-1将删除任何大小限制).为了避免使这个方法占用大量内存,我编写了一个返回Stream<String>而不是列表的等效方法.(注意:我不需要随机访问返回的元素或任何其他特定于列表的功能.)

但是,我对返回a有点怀疑Stream<>,特别是因为该方法是公开的.使用Stream<>Java 返回公共方法是否安全?

java java-8 java-stream

12
推荐指数
1
解决办法
1304
查看次数

安装mysql2时出错

我想在服务器上安装mysql2.所以我的第一个不幸的踪迹如下

gem install mysql2
Run Code Online (Sandbox Code Playgroud)

输出

    Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in …
Run Code Online (Sandbox Code Playgroud)

ruby mysql ruby-on-rails

7
推荐指数
3
解决办法
7623
查看次数

从列表中获取所有连续 2 元组的 Pythonic 方式

我有一个句子作为单词列表,我试图从中提取所有的二元组(即所有连续的 2 元组单词)。所以,如果我的句子是

['To', 'sleep', 'perchance', 'to', 'dream']

我想回来

[('To', 'sleep'), ('sleep', 'perchance'), ('perchance', 'to'), ('to', 'dream')]

目前,我正在使用

zip([sentence[i] for i in range(len(sentence) - 1)], [sentence[i+1] for i in range(len(sentence) - 1)] 然后迭代这个,但我不禁想到有更多的 Pythonic 方法可以做到这一点。

python

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

Java枚举上的逻辑操作

我有一个项目,在不同的场景中,我必须处理大型数据集的不同子集.我编写代码的方式有一个Collector接口和一个类DataCollector implements Collector.类DataCollector被实例化与所述子集创造的条件,并且这些条件是枚举.

假设数据集是一组100万个英语单词,我想研究由奇数个字母组成的单词子集.然后,我做以下事情:

DataCollector dataCollector = new DataCollector(CollectionType.WORDS_OF_ODD_LENGTH);
Set<String> fourLetteredWords = dataCollector.collect();
Run Code Online (Sandbox Code Playgroud)

CollectionType枚举类在哪里

enum CollectionType {
    WORDS_OF_ODD_LENGTH,
    WORDS_OF_EVEN_LENGTH,
    STARTING_WITH_VOWEL,
    STARTING_WITH_CONSONANT,
    ....
}
Run Code Online (Sandbox Code Playgroud)

数据收集器java.util.Predicate根据实例化的枚举调用a .

到目前为止,这种方法已经足够强大和灵活,但现在我面临着越来越复杂的场景(例如,从元音开始收集均匀长度的单词).我想避免CollectionType为每个这样的场景添加新内容.我注意到的是,这些复杂场景中的许多场景只是对较简单场景的逻辑运算(例如condition_1 && (condition_2 || condition_3)).

最终用户是指定这些条件的人,而我唯一的控制是我可以指定这些条件的集合.同样,最终用户只能选择CollectionType.现在,我试图从仅选择一个条件的能力推广到能够选择一个或多个.为此,我需要类似的东西

DataCollector dataCollector = new DataCollector(WORDS_OF_ODD_LENGTH &&
                                                STARTING_WITH_VOWEL);
Run Code Online (Sandbox Code Playgroud)

有没有办法对我的枚举进行建模以进行此类操作?我对其他想法持开放态度(因为我应该废弃这种基于枚举的方法来解决其他问题等).

java enums logical-operators

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

修改均匀随机数生成器的范围

我得到一个函数rand5(),它在均匀分布中生成闭区间[1,5]中的随机整数.我如何使用rand5(),而不是别的,来创建一个函数rand7(),它在[1,7]中生成整数(再次,均匀分布)?


  1. 我搜索了stackoverflow,发现了许多类似的问题,但不完全像这个问题.
  2. 我最初的尝试是rand5()+ 0.5*rand5()+ 0.5*rand5().但是这不会以均匀的概率从1到7生成整数.任何答案或答案链接都是非常受欢迎的.

random algorithm

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

使用geom_point在ggplot2中有条件地使用抖动

我有一个图表,其中12个变量分为两组.我不能使用facet,但使用颜色和形状,我已经能够使可视化易于理解.但是,有些点(部分或全部)重叠.我正在使用抖动来处理这些问题,但正如您从附图中看到的那样,这会导致所有点都被移动,而不仅仅是那些有重叠的点. 在此输入图像描述

有条件地使用抖动或闪避的方法吗?更好的是,有没有办法将部分重叠的点并排放置?正如您所看到的,我的x轴是离散类别,向左/右轻微移动无关紧要.我尝试使用dotplot binaxis='y',但这完全破坏了x轴.

编辑:此图表已成功完成我正在搜索的内容.

进一步编辑:添加此可视化背后的代码.

disciplines <- c("Comp. Sc.\n(17.2%)", "Physics\n(19.6%)", "Maths\n(29.4%)", "Pol.Sc.\n(40.4%)", "Psychology\n(69.8%)")

# To stop ggplot from imposing alphabetical ordering on x-axis
disciplines <- factor(disciplines, levels=disciplines, ordered=T)

# involved aspects
intensive   <- c( 0.660,  0.438,  0.515,  0.028,  0.443)
comparative <- c( 0.361,  0.928,  0.270,  0.285,  0.311)
wh_adverbs  <- c( 0.431,  0.454,  0.069,  0.330,  0.577)
past_tense    <- c(0.334, 0.229, 0.668, 0.566, 0.838)
present_tense <- c(0.680, 0.408, 0.432, 0.009, 0.996)
conjunctions <- c( 0.928,  0.207,  0.162, -0.299, -0.045) …
Run Code Online (Sandbox Code Playgroud)

plot visualization r ggplot2

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

Java三元运算符与空子句

这个问题更多的是我的好奇心而不是其他任何问题.

我经常使用Java的三元运算符来编写更短的代码.我一直在琢磨然而,无论是可能的,如果的一个使用它ifelse条件都是空的.更多细节:

int x = some_function();
if (x > 0)
    x--;
else
    x++;
Run Code Online (Sandbox Code Playgroud)

可写成 x = (x > 0) ? x-1 : x+1;

但是有可能if (x > 0) x-1;用空的else子句写成三元表达式吗?

java ternary-operator

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

TurboParser的依赖解析输出是什么意思?

我一直在尝试使用CMU的TurboParser生成的依赖解析树.它完美无瑕.然而,问题在于文档很少.我需要准确理解解析器的输出.例如,句子" 我解决了统计问题. "生成以下输出:

1   I           _   PRP PRP _   2   SUB
2   solved      _   VBD VBD _   0   ROOT
3   the         _   DT  DT  _   4   NMOD
4   problem     _   NN  NN  _   2   OBJ
5   with        _   IN  IN  _   2   VMOD
6   statistics  _   NNS NNS _   5   PMOD
7   .           _   .   .   _   2   P
Run Code Online (Sandbox Code Playgroud)

我没有找到任何可以帮助理解各列所代表的内容的文档,以及如何创建倒数第二列(2,0,4,2,...)中的索引.另外,我不知道为什么有两列专门用于词性标签.任何帮助(或外部文档的链接)都将提供很大帮助.

PS如果你想试试他们的解析器,这是他们的在线演示.

PPS请不要建议使用斯坦福的依赖解析输出.我对线性编程算法感兴趣,这不是斯坦福的NLP系统所做的.

nlp parse-tree

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