我正在从requirements.txt安装包
pip install -r requirements.txt
requirements.txt文件读取:
Pillow
lxml
cssselect
jieba
beautifulsoup
nltk
Run Code Online (Sandbox Code Playgroud)
lxml是唯一一个无法安装的软件包,这导致一切都失败了(预期结果如评论中的larsks所指出的).但是,lxml失败后pip仍会运行并下载其余的软件包.
根据我的理解,pip install -r requirements.txt如果requirements.txt无法安装中列出的任何软件包,该命令将失败.
在运行时是否可以传递任何参数pip install -r requirements.txt,告诉它安装它可以并跳过它不能的包,或者一看到它失败就立即退出?
我是Python新手,正在使用Linux机器(Ubuntu 10.10).它正在运行python 2.6,但我想运行2.7因为它有我想要使用的功能.我被敦促不安装2.7并将其设置为我的默认python.
我的问题是,如何安装2.7并与2.6并排运行?
我试图从文本中提取人名.
有没有人有他们推荐的方法?
这就是我尝试的(代码如下):我nltk用来查找标记为人的所有内容,然后生成该人的所有NNP部分的列表.我正在跳过那些只有一个NNP的人,这可以避免抓住一个单独的姓氏.
我得到了不错的结果但是想知道是否有更好的方法来解决这个问题.
码:
import nltk
from nameparser.parser import HumanName
def get_human_names(text):
tokens = nltk.tokenize.word_tokenize(text)
pos = nltk.pos_tag(tokens)
sentt = nltk.ne_chunk(pos, binary = False)
person_list = []
person = []
name = ""
for subtree in sentt.subtrees(filter=lambda t: t.node == 'PERSON'):
for leaf in subtree.leaves():
person.append(leaf[0])
if len(person) > 1: #avoid grabbing lone surnames
for part in person:
name += part + ' '
if name[:-1] not in person_list:
person_list.append(name[:-1])
name = ''
person = []
return …Run Code Online (Sandbox Code Playgroud) 我正在使用Python 2.7,我正在尝试重复删除列表列表并合并重复项的值.
现在我有:
original_list = [['a', 1], ['b', 1], ['a', 1], ['b', 1], ['b', 2], ['c', 2], ['b', 3]]
Run Code Online (Sandbox Code Playgroud)
我想匹配每个嵌套列表的第一个元素,然后添加第二个元素的值.我想最终得到这个(最终列表的顺序无关紧要):
ideal_output = [['a', 2], ['b', 7], ['c', 2]]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有一些代码将根据每个嵌套列表的第一个元素找到重复值:
for item in original_list:
matches = -1
for x in original_list:
if (item[0] == x[0]):
matches += 1
if matches >= 1:
if item[0] not in duplicates_list:
duplicates_list.append(item[0])
Run Code Online (Sandbox Code Playgroud)
从这里我需要搜索original_list中的所有duplicates_list项并添加值,但我不确定最好的方法是什么.
我正在使用Python 2.7和postgresql 9.1.试图从查询中获取字典,我已经尝试了这里描述的代码:http: //wiki.postgresql.org/wiki/Using_psycopg2_with_PostgreSQL
import psycopg2
import psycopg2.extras
conn = psycopg2.connect("dbname=mydb host=localhost user=user password=password")
cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
cur.execute ("select * from port")
type(cur.fetchall())
Run Code Online (Sandbox Code Playgroud)
它打印下一个答案:
<type 'list'>
Run Code Online (Sandbox Code Playgroud)
打印项目本身,告诉我它是列表.除外答案是字典.
编辑:
尝试下一个:
ans = cur.fetchall()[0]
print ans
print type(ans)
Run Code Online (Sandbox Code Playgroud)
回报
[288, 'T', 51, 1, 1, '192.168.39.188']
<type 'list'>
Run Code Online (Sandbox Code Playgroud) 我想在meteor(版本0.8)中构建一个调用python脚本的项目,该脚本又将一些数据发送回去meteor.我不确定目前这样做的最佳做法是什么.
DDP看起来不错:
"客户端可以用来通过它的DDP协议与Meteor通信,来自Meteor堆栈外部." 但python实现看起来未完成:python-ddp-client
我想我也可以直接写mongodb,python但听起来不是最好的主意:
我错过了什么吗?有一个更好的方法吗?
我一直在研究如何将文本压缩成ascii.所以ā - > a和ñ - > n等
unidecode 对此非常棒.
# -*- coding: utf-8 -*-
from unidecode import unidecode
print(unidecode(u"?, ?, ?, ?, ñ"))
print(unidecode(u"Estado de São Paulo"))
Run Code Online (Sandbox Code Playgroud)
生产:
a, i, u, s, n
Estado de Sao Paulo
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用输入文件中的数据复制此结果.
test.txt文件的内容:
?, ?, ?, ?, ñ
Estado de São Paulo
Run Code Online (Sandbox Code Playgroud)
# -*- coding: utf-8 -*-
from unidecode import unidecode
with open("test.txt", 'r') as inf:
for line in inf:
print unidecode(line.strip())
Run Code Online (Sandbox Code Playgroud)
生产:
A, A<<, A<<, A, A+-
Estado de …Run Code Online (Sandbox Code Playgroud) 我想seaborn用这个Dockerfile 安装:
FROM alpine:latest
RUN apk add --update python py-pip python-dev
RUN pip install seaborn
CMD python
Run Code Online (Sandbox Code Playgroud)
我得到的错误与numpy和scipy(需要seaborn)有关.它始于:
/tmp/easy_install-nvj61E/numpy-1.11.1/setup.py:327:UserWarning:无法识别setuptools的命令,则进行与生成用Cython源和扩大模板
最后以
在get_mathlib_info中的文件"numpy/core/setup.py",第654行
RuntimeError:破坏的工具链:无法链接简单的C程序
命令"python setup.py egg_info"失败,错误代码为1/tmp/pip-build-DZ4cXr/scipy /
命令'/ bin/sh -c pip install seaborn'返回非零代码:1
知道如何解决这个问题吗?
我正在使用nltk将文本拆分为句子单元.但是,我需要将包含引号的句子作为单个单元提取.现在每个句子,即使它在一个引用中,也被提取为一个单独的部分.
这是我尝试作为单个单元提取的一些示例:
"This is a sentence. This is also a sentence," said the cat.
Run Code Online (Sandbox Code Playgroud)
现在我有这个代码:
import nltk.data
tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
text = 'This is a sentence. This is also a sentence," said the cat.'
print '\n-----\n'.join(tokenizer.tokenize(text, realign_boundaries=True))
Run Code Online (Sandbox Code Playgroud)
这很好用,但即使引号本身包含多个句子,我也想维持带引号的句子.
上面的代码产生:
This is a sentence.
-----
This is also a sentence," said the cat.
Run Code Online (Sandbox Code Playgroud)
我试图将整个文本提取为一个单元:
"This is a sentence. This is also a sentence," said the cat.
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以使用nltk执行此操作,还是应该使用正则表达式?我对nltk入门是多么容易感到印象深刻,但现在被卡住了.
python ×9
python-2.7 ×4
nltk ×2
alpine-linux ×1
dictionary ×1
docker ×1
list ×1
meteor ×1
nlp ×1
numpy ×1
pickle ×1
pip ×1
postgresql ×1
psycopg2 ×1
regex ×1
seaborn ×1
ubuntu ×1
unicode ×1