在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代码中使用代理来获取一些网页.而且我想偷偷摸摸!所以我正在使用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)
我之前从未做过任何网络编程.任何关于此的指导也将非常有帮助.谢谢 :-)
我有一种情况,我正在读取数据库并返回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 返回公共方法是否安全?
我想在服务器上安装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) 我有一个句子作为单词列表,我试图从中提取所有的二元组(即所有连续的 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 方法可以做到这一点。
我有一个项目,在不同的场景中,我必须处理大型数据集的不同子集.我编写代码的方式有一个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)
有没有办法对我的枚举进行建模以进行此类操作?我对其他想法持开放态度(因为我应该废弃这种基于枚举的方法来解决其他问题等).
我得到一个函数rand5(),它在均匀分布中生成闭区间[1,5]中的随机整数.我如何使用rand5(),而不是别的,来创建一个函数rand7(),它在[1,7]中生成整数(再次,均匀分布)?
我有一个图表,其中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) 这个问题更多的是我的好奇心而不是其他任何问题.
我经常使用Java的三元运算符来编写更短的代码.我一直在琢磨然而,无论是可能的,如果的一个使用它if
或else
条件都是空的.更多细节:
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子句写成三元表达式吗?
我一直在尝试使用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系统所做的.