小编alv*_*vas的帖子

nltk不会将$ NLTK_DATA添加到搜索路径中?

在linux下,我设置了env var $ NLTK_DATA('/ home/user/data/nltk'),并按预期吹出测试工作

>>> from nltk.corpus import brown
>>> brown.words()
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]
Run Code Online (Sandbox Code Playgroud)

但是当运行另一个python脚本时,我得到了:

LookupError: 
**********************************************************************
Resource u'tokenizers/punkt/english.pickle' not found.  Please
use the NLTK Downloader to obtain the resource:  >>>
nltk.download()
Searched in:
- '/home/user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''
Run Code Online (Sandbox Code Playgroud)

我们可以看到,在手动附加NLTK_DATA目录后,nltk不会向搜索路径添加$ NLTK_DATA:

nltk.data.path.append("/NLTK_DATA_DIR");
Run Code Online (Sandbox Code Playgroud)

脚本按预期运行,问题是:

如何让nltk自动将$ NLTK_DATA添加到它的搜索路径?

python environment-variables nltk search-path

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

使用 nltk 绘制 50 个最不常见的单词

如何绘制 50 个最不常见的单词?

也许是我想得太复杂了。这是我得到这些词的方式:

distr = nltk.FreqDist(word for word in items)
words = distr .keys()
seldomwords = words [:50]
Run Code Online (Sandbox Code Playgroud)

我现在该如何绘制这个?

通过plot函数,FreqDist我得到所有或仅x个最常见的单词。

我尝试过类似的东西:

distr .plot(:50)
Run Code Online (Sandbox Code Playgroud)

但这在语法上是不正确的。

python plot nlp nltk

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

从Tensorflow获得相反的输出可以学习OR门

鉴于DNN(多层感知器的简单情况)分别具有5个和3个维度的2个隐藏层,我正在训练模型以识别OR门.

使用tensorflow学习,似乎它给了我反向输出,我不知道为什么:

from tensorflow.contrib import learn
classifier = learn.DNNClassifier(hidden_units=[5, 3], n_classes=2)

or_input = np.array([[0.,0.], [0.,1.], [1.,0.]])
or_output = np.array([[0,1,1]]).T

classifier.fit(or_input, or_output, steps=0.05, batch_size=3)
classifier.predict(np.array([ [1., 1.], [1., 0.] , [0., 0.] , [0., 1.]]))
Run Code Online (Sandbox Code Playgroud)

[OUT]:

array([0, 0, 1, 0])
Run Code Online (Sandbox Code Playgroud)

如果我这样做"老派",没有tensorflow.learn如下,我得到了预期的答案.

import tensorflow as tf
# Parameters
learning_rate = 1.0
num_epochs = 1000

# Network Parameters
input_dim = 2 # Input dimensions.
hidden_dim_1 = 5 # 1st layer number of features
hidden_dim_2 = 3 # 2nd layer number of …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network deep-learning tensorflow

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

在分隔文件中拖曳列

我有一个文件:

$ cat test.txt 
a   b   c
d   e   f
x   y   z
Run Code Online (Sandbox Code Playgroud)

我可以在Python中执行此操作来重新排列列:

import random

with open('test.txt', 'r') as fin:
    with open('test-shuffle.txt', 'w') as fout:
         for line in fin:
             line = line.strip().split('\t')
             random.shuffle(line)
             fout.write('\t'.join(line) + '\n')
Run Code Online (Sandbox Code Playgroud)

[OUT]:

$ cat test-shuffle.txt 
b   c   a
e   d   f
x   y   z
Run Code Online (Sandbox Code Playgroud)

但有没有办法在命令行上执行此操作?也许有cut,awk,sed,等?

此外,如果我只想对特定列进行洗牌,那么在命令行上是否也可以这样做,例如,如果我只想要洗牌第2列和第3列:

import random

with open('test.txt', 'r') as fin:
    with open('test-shuffle.txt', 'w') as fout:
         for line in fin:
             line = line.strip().split('\t')
             first , second, …
Run Code Online (Sandbox Code Playgroud)

python unix csv awk sed

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

如何选择最小数量.从列表> 0?

如何选择最小数量.从列表> 0?

我试过了:

  • 使用列表理解来清除非正面的
  • 然后min()在筛选器列表上执行a

>>> x = (-3155, 611, 1284)
>>> min_x_more_than_0 = min([i for i in x if i > 0])
>>> min_x_more_than_0
611
Run Code Online (Sandbox Code Playgroud)

必须有更好/更快的方法来做到这一点.想象一下,X的长度是1,000,000,000,在列表中循环是相当低效的.

python list-comprehension list minimum

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

如何在 Julia 中替换字符串文字的后/前斜线?

在 Python 中,我可以像这样对斜杠进行字符串替换:

>>> s = 'ab\c'
>>> s.replace('\\', '\\\\')
'ab\\\\c'
>>> print s.replace('\\', '\\\\')
ab\\c
Run Code Online (Sandbox Code Playgroud)

在 Julia 中,当我可以这样做时:

julia> s = "ab\\c"
"ab\\c"

julia> replace(s, "\\\\", "\\\\\\\\")
"ab\\c"
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它会引发一些语法错误:

julia> replace(s, r"\", r"\\")
ERROR: syntax: "\" is not a unary operator
Run Code Online (Sandbox Code Playgroud)

python backslash string-literals julia

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

将 csv 文件中的列加载到 spaCy

我是 spaCy 和 NLTK 的新手,所以如果这似乎是一个愚蠢的问题,我提前道歉。

基于 spaCy 教程,我必须使用以下命令将文本加载到文档中。

doc = nlp(u'Hello, world. Natural Language Processing in 10 lines of code.')
Run Code Online (Sandbox Code Playgroud)

但是,我在 sql server 或 excel 上以表格格式存储了很多文本。它基本上有两列。第一列具有唯一标识符。第二列有一个简短的文本。

我如何将它们加载到 spaCy 中?我是否需要将它们转换为 Numpy 数组或 Pandas 数据帧,然后将其加载到文档中?

在此先感谢您的帮助!

python numpy nltk pandas spacy

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

在 WordsNet (Python) 中找到给定多个单词的最低常见上位词

如果我在 python 中有一个单词列表,例如:

words = ["blue", "red", "ball"]
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 WordNet 以编程方式为这组单词生成上位词?

python nlp wordnet hypernym

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

通过pandas数据框用str列的空格替换换行符

给定一个示例数据框,其中包含自由文本的第二列和第三列

>>> import pandas as pd
>>> lol = [[1,2,'abc','foo\nbar'], [3,1, 'def\nhaha', 'love it\n']]
>>> pd.DataFrame(lol)
   0  1          2          3
0  1  2        abc   foo\nbar
1  3  1  def\nhaha  love it\n
Run Code Online (Sandbox Code Playgroud)

目标是替换为\nto (空格)并剥离第2列和第3列中的字符串,以实现:

>>> pd.DataFrame(lol)
   0  1         2        3
0  1  2       abc  foo bar
1  3  1  def haha  love it
Run Code Online (Sandbox Code Playgroud)

如何通过熊猫数据框用特定列的空格替换换行符?

我已经试过了:

>>> import pandas as pd
>>> lol = [[1,2,'abc','foo\nbar'], [3,1, 'def\nhaha', 'love it\n']]

>>> replace_and_strip = lambda x: x.replace('\n', ' ').strip()

>>> lol2 = …
Run Code Online (Sandbox Code Playgroud)

python string replace strip pandas

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

如何在索引 DataFrame 上对热图的 x 轴和 y 轴执行自定义排序?

这个问题给出了对 y 轴进行排序的解决方案:来自枢轴的 seaborn heatmap 中的数据顺序 但是如何对 x 轴和 y 轴执行自定义排序?

没有自定义排序,我们看到的顺序:

  • x轴:电话,电视
  • y 轴:苹果、谷歌、三星

代码:

lol = [['apple', 'phone', 10], ['samsung', 'tv', 20], ['apple', 'tv', 5], ['google', 'tv', 8], ['google', 'phone', 9], ['samsung', 'phone', 3]]
df = pd.DataFrame(lol)
df = df.rename(columns={0:'brand', 1:'product', 2:'count'})
df = df.pivot('brand', 'product', 'count')
ax = sns.heatmap(df)
plt.show()
Run Code Online (Sandbox Code Playgroud)

[出去]:

在此处输入图片说明

如果我需要对 y 轴进行排序以显示 order samsung, apple, google,我可以这样做:

lol = [['apple', 'phone', 10], ['samsung', 'tv', 20], ['apple', 'tv', 5], ['google', 'tv', 8], ['google', …
Run Code Online (Sandbox Code Playgroud)

python pivot pandas categorical-data seaborn

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