小编vis*_*akh的帖子

使用gensim了解LDA实现

我试图了解Python中的gensim包如何实现Latent Dirichlet Allocation.我正在做以下事情:

定义数据集

documents = ["Apple is releasing a new product", 
             "Amazon sells many things",
             "Microsoft announces Nokia acquisition"]             
Run Code Online (Sandbox Code Playgroud)

删除停用词后,我创建了字典和语料库:

texts = [[word for word in document.lower().split() if word not in stoplist] for document in documents]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]
Run Code Online (Sandbox Code Playgroud)

然后我定义了LDA模型.

lda = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=dictionary, num_topics=5, update_every=1, chunksize=10000, passes=1)
Run Code Online (Sandbox Code Playgroud)

然后我打印主题:

>>> lda.print_topics(5)
['0.181*things + 0.181*amazon + 0.181*many + 0.181*sells + 0.031*nokia + 0.031*microsoft + 0.031*apple + 0.031*announces + 0.031*acquisition + 0.031*product', '0.077*nokia + …
Run Code Online (Sandbox Code Playgroud)

python dirichlet gensim topic-modeling

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

在Python中截断十进制值

我试图在Python中截断一个十进制值.我不想舍入它,而只是显示小数值达到指定的精度.我尝试了以下方法:

d = 0.989434
'{:.{prec}f}'.format(d, prec=2)
Run Code Online (Sandbox Code Playgroud)

这使其达到0.99.但我实际上希望输出为0.98.显然,round()不是一种选择.有没有办法做到这一点?或者我应该回到代码并将所有内容更改为decimal

谢谢.

python formatting truncate decimal

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

Unix - 需要剪切一个有多个空格作为分隔符的文件 - awk或cut?

我需要从Unix中的文本文件中获取记录.分隔符是多个空格.例如:

2U2133   1239  
1290fsdsf   3234
Run Code Online (Sandbox Code Playgroud)

由此,我需要提取

1239  
3234
Run Code Online (Sandbox Code Playgroud)

所有记录的分隔符将始终为3个空格.

我需要在unix脚本(.scr)中执行此操作,并将输出写入另一个文件或将其用作do-while循环的输入.我试过以下:

while read readline  
do  
        read_int=`echo "$readline"`  
        cnt_exc=`grep "$read_int" ${Directory path}/file1.txt| wc -l`  
if [ $cnt_exc -gt 0 ]  
then  
  int_1=0  
else  
  int_2=0  
fi  
done < awk -F'  ' '{ print $2 }' ${Directoty path}/test_file.txt  
Run Code Online (Sandbox Code Playgroud)

test_file.txt是输入文件,file1.txt是查找文件.但上面的方法不起作用,并在awk -F附近给我语法错误

我尝试将输出写入文件.以下在命令行中工作:

more test_file.txt | awk -F'   ' '{ print $2 }' > output.txt
Run Code Online (Sandbox Code Playgroud)

这是在命令行中将记录写入output.txt.但是同样的命令在unix脚本中不起作用(它是.scr文件)

请让我知道我哪里出错了,以及如何解决这个问题.

谢谢,
维萨克

unix awk cut delimiter

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

在Python中合并多个JSON文件的问题

我试图在Ubuntu平台中组合多个JSON文件.例如,两个文件中的数据如下:

File_1

{
    "artist":"Gob",
    "timestamp":"2011-08-09 01:59:41.352247",
    "similars":[
        [
            "TRTOVWD128F92F4227",
            1
        ],
        [
            "TRUXNUD128F92F41D0",
            0.97294099999999994
        ],
        [
            "TRNNOJO128F42992E9",
            0.073926900000000004
        ],
        [
            "TRGZHTT128F423B2A4",
            0.068387699999999996
        ],
        [
            "TRGYKYD128F42625F6",
            0.065579700000000005
        ],
        [
            "TRGIWHY128F42625F5",
            0.064063700000000001
        ],
        [
            "TRJCJTX128F930CACE",
            0.063140100000000005
        ],
        [
            "TRMYNWT128F426254B",
            0.0613825
        ],
        [
            "TRRQOJI128F428C865",
            0.061121599999999998
        ],
        [
            "TRBNYHM128F428A569",
            0.061121599999999998
        ],
        [
            "TRDLOYE128F4241E72",
            0.060951900000000003
        ],
        [
            "TRNRVEW12903CBA24F",
            0.060332700000000003
        ],
        [
            "TRKKIPG12903CBA083",
            0.060155
        ],
        [
            "TRZHTGP128F428A63B",
            0.059873599999999999
        ],
        [
            "TRKQSGZ128F428A851",
            0.059873599999999999
        ],
        [
            "TRTOPDF128F42AD88A",
            0.059687799999999999
        ],
        [
            "TRIWOPM128F4241E53",
            0.058958900000000002
        ],
        [
            "TRCCJUW128F14652DB",
            0.057935
        ],
        [ …
Run Code Online (Sandbox Code Playgroud)

python json

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

将HDF5文件转换为其他格式

我有几个大文件集的HDF5文件,我正在寻找一种有效的方法将这些文件中的数据转换为XML,TXT或其他一些易于阅读的格式.我尝试使用Python包(www.h5py.org),但我无法弄清楚任何方法,我可以足够快地完成这些工作.我不仅限于Python,还可以使用Java,Scala或Matlab编写代码.有人可以给我一些关于如何进行此操作的建议吗?

谢谢,

TM值

python hdf5 h5py

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

HIVE中的LIMIT条款是否真的是随机的?

该条款的说明文件.我一直在一张桌子上运行一个表,其中包含多个记录,但它总是返回相同的记录.HIVELIMITreturns rows chosen at randomSELECT800,000LIMIT 1

我正在使用该Shark发行版,我想知道这是否与这种不期望的行为有关?任何想法将不胜感激.

谢谢,维萨克

sql hive hiveql shark-sql

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

UDF无法在Spark SQL中工作

我正在尝试计算Spark SQL上的Jaccard索引.我的表格中Hive包含以下数据:

hive> select * from test_1;

1   ["rock","pop"]
2   ["metal","rock"]
Run Code Online (Sandbox Code Playgroud)

表DDL:

create table test_1
(id int, val array<string>);
Run Code Online (Sandbox Code Playgroud)

我使用的是UDF来自Brickhouse.从spark-shell,我可以执行以下命令来创建临时函数.

val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
hiveContext.hql("CREATE TEMPORARY FUNCTION jaccard_similarity AS 'brickhouse.udf.sketch.SetSimilarityUDF'")
Run Code Online (Sandbox Code Playgroud)

我还将.jar文件添加到CLASSPATHfor spark-shell(in compute-classpath.sh)中.

当我列出函数时,我能够看到我创建的新函数.

hiveContext.hql("show functions").collect().foreach(println)
Run Code Online (Sandbox Code Playgroud)

接下来,我使用该jaccard_similarity函数计算val数组的Jaccard Index .

hiveContext.hql("select jaccard_similarity(a.val, b.val) from test_1 a join test_1 b")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

14/07/31 15:39:56 INFO ParseDriver: Parsing command: select jaccard_similarity(a.val, b.val) from test_1 a …
Run Code Online (Sandbox Code Playgroud)

hive scala apache-spark shark-sql

9
推荐指数
1
解决办法
5196
查看次数

导出Hive查询结果

我是新手hive,可以使用一些提示.

我试图从导出查询结果hive作为csv.当我尝试将它们从CLI中移出时:

hive -e 'select * from table'>OutPut.txt
Run Code Online (Sandbox Code Playgroud)

我得到一个包含所有记录但没有列标题的文本文件.有没有人有关于如何将带有列标题的查询结果导出到csv文件的提示?

如果我在色调中运行查询,然后下载结果,csv我得到一个csv列标题,但没有记录.如果有人有关于如何从记录和列标题的hue下载查询结果的提示,我将非常感激.

hive hue hiveql

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

水平合并两个文件并进行格式化

我有两个文件,如下所示:

文件_1

Austin
Los Angeles
York
San Ramon
Run Code Online (Sandbox Code Playgroud)

文件_2

Texas
California
New York
California
Run Code Online (Sandbox Code Playgroud)

我想将它们水平合并,如下所示:

Austin       Texas
Los Angeles  California
York         New York
San Ramon    California
Run Code Online (Sandbox Code Playgroud)

我可以通过使用paste命令水平合并,但是格式变得很麻烦。

Austin Texas
Los Angeles California
York New York
San Ramon California
Run Code Online (Sandbox Code Playgroud)

我意识到它paste正在按预期的方式工作,但是有人可以向我指出正确的方向来正确设置格式。

谢谢。

unix paste

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

从R表中的多个列中选择频繁值

我有一个data.table res数据如下:

            V1 V2 V3 V4
  1:     Day_1  4  4  4
  2:     Day_2  1  1  2
  3:     Day_3  4  5  4
  4:     Day_4  3  4  4
  5:     Day_5  3  2  3
Run Code Online (Sandbox Code Playgroud)

我需要从列V2,V3和V4中选择最常用的值.也就是说,我需要选择结果如下:

Day_1 4
Day_2 1
Day_3 4
Day_4 4
Day_5 3
Run Code Online (Sandbox Code Playgroud)

我不期待任何关系,因为总会有奇数列.有可能操纵data.table这样做吗?或者我应该修改一些其他数据类型?

谢谢 - V

r data.table

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