小编sam*_*n13的帖子

Python从多个txt文件解析文本

寻求有关如何从多个文本文件中挖掘项目以构建字典的建议.

此文本文件:https://pastebin.com/Npcp3HCM

手动转换为此必需的数据结构:https://drive.google.com/file/d/0B2AJ7rliSQubV0J2Z0d0eXF3bW8/view

有数千个这样的文本文件,它们可能有不同的章节标题,如下例所示:

  1. https://pastebin.com/wWSPGaLX
  2. https://pastebin.com/9Up4RWHu

我开始阅读文件

from glob import glob

txtPth = '../tr-txt/*.txt'
txtFiles = glob(txtPth)

with open(txtFiles[0],'r') as tf:
    allLines = [line.rstrip() for line in tf]

sectionHeading = ['Corporate Participants',
                  'Conference Call Participiants',
                  'Presentation',
                  'Questions and Answers']

for lineNum, line in enumerate(allLines):
    if line in sectionHeading:
        print(lineNum,allLines[lineNum])
Run Code Online (Sandbox Code Playgroud)

我的想法是查找段标题存在的行号,并尝试在这些行号之间提取内容,然后删除像破折号一样的分隔符.这不起作用,我试图创建这种字典,以便我以后可以在采石项目上运行各种自然语言处理算法.

{file-name1:{
    {date-time:[string]},
    {corporate-name:[string]},
    {corporate-participants:[name1,name2,name3]},
    {call-participants:[name4,name5]},
    {section-headings:{
        {heading1:[
            {name1:[speechOrderNum, text-content]},
            {name2:[speechOrderNum, text-content]},
            {name3:[speechOrderNum, text-content]}],
        {heading2:[
            {name1:[speechOrderNum, text-content]},
            {name2:[speechOrderNum, text-content]},
            {name3:[speechOrderNum, text-content]},
            {name2:[speechOrderNum, text-content]},
            {name1:[speechOrderNum, text-content]}, …
Run Code Online (Sandbox Code Playgroud)

python parsing dictionary nlp

15
推荐指数
1
解决办法
1543
查看次数

Python,OpenCV:无法使用opencv_traincascade进行自定义LBP级联

我在mac os x 10.7.5上使用通过macports安装的opencv 2.4.4和python 2.7.5.

我想训练一个级联来寻找男性正面.但是我收到了terminate called throwing an exceptionAbort trap: 6错误.我要求SO社区帮我弄清楚可能出现的问题.

负面(背景)图片来自谷歌:googleImages_noFaces(293张图片)

正面图像来自Karolinska数据库:trainingSet(70图像)

我创建了一个文本文件,指示背景图像的相对位置:bgDesc.txt

我还创建了一个文本文件,指示相对位置,图像中正实例的数量(始终为1)和对象的边界区域(整个图像):maleDesc.txt

所有这些文件都可以从这里下载.

文件的组织采用以下形式:

/trainingSet
    image1.jpg
    image2.jpg
    .
    .
    .

/googleImages_noFaces
    image1.jpg
    image2.jpg
    .
    .
    .

/cascadeFiles

maleDesc.txt
bgDesc.txt
Run Code Online (Sandbox Code Playgroud)

当我使用opencv_createsamples时,使用maleDesc.vec以下行成功创建了一个文件:

opencv_createsamples -vec maleDesc.vec -info maleDesc.txt -bg bgDesc.txt -num 70 -w 24 -h 24
Run Code Online (Sandbox Code Playgroud)

如果我使用-show参数我可以看到创建了24x24像素图像.

然后我试试

opencv_traincascade -data cascadeFiles -vec maleDesc.vec -bg bgDesc.txt -numPos 70 - numNeg 293 -numStages 1 -precalcValBufSize 500 -precalcIdxBufSize 500 -featureType LBP -w 24 …
Run Code Online (Sandbox Code Playgroud)

python opencv classification image-processing image-recognition

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

Python、OpenCV:使用 ORB 特征和 KNN 对性别进行分类

任务:将人脸图像分类为女性或男性。可以使用带标签的训练图像,从网络摄像头获取测试图像。

使用: Python 2.7,OpenCV 2.4.4

我正在使用 ORB 从灰度图像中提取特征,我希望将其用于训练 K-最近邻分类器。每个训练图像都是不同的人,因此每个图像的关键点和描述符的数量明显不同。我的问题是我无法理解 KNN 和 ORB 的 OpenCV 文档。我看过其他关于 ORB、KNN 和 FLANN 的 SO 问题,但它们并没有多大帮助。

ORB 给出的描述符的性质究竟是什么?它与通过BRIEF、SURF、SIFT等获得的描述符有何不同?

对于 KNN 中的每个训练样本,特征描述符似乎应该具有相同的大小。如何确保每个图像的描述符大小相同?更一般地说,特征应该以什么格式呈现给 KNN 以使用给定的数据和标签进行训练?数据应该是整数还是浮点数?可以是字符吗?

可以在此处找到训练数据。

我也在使用haarcascade_frontalface_alt.xml来自 opencv 的示例

现在 KNN 模型只提供了 10 张图像进行训练,以查看我的程序是否通过而没有错误,但没有。

这是我的代码:

import cv2
from numpy import float32 as np.float32

def chooseCascade():
    # TODO: Option for diferent cascades
    # HAAR Classifier for frontal face
    _cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
    return _cascade

def cropToObj(cascade,imageFile):
    # Load as 1-channel grayscale image
    image = …
Run Code Online (Sandbox Code Playgroud)

python opencv classification image-processing image-recognition

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

无法在mac os x上使用python和opencv2编写视频

我使用mac os x 1.7.5与python 2.7.5_1和opencv 2.4.4_0通过macports安装.我似乎拥有所有最新的依赖端口.

在我的代码中,cv2.Videowriter()成功创建并打开它,生成一个6kb .avi文件,但videoFile.write(img0)不会在该文件中写入任何内容.我真的无法弄清楚为什么视频流没有写入文件.任何见解?

我的代码如下:

import cv2
import cv

cv2.namedWindow("Original")

cap0 = cv2.VideoCapture(0) 

codec = cv.CV_FOURCC('D','I','V','X')
print codec

videoFile = cv2.VideoWriter();
videoFile.open('video.avi', codec, 25, (640, 480),1)

key = -1
while(key < 0):
    success0, img0 = cap0.read()

    cv2.imshow("Original", img0)

    videoFile.write(img0)

    key = cv2.waitKey(1)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

我尝试过这些编解码器,但没有一个工作:I420,AVC1,YUV1,PIM1,MJPG,MP42,MP4V,DIV3,DIVX,XVID,IUYV,FFV1,FLV1,U263,H264,ZLIB

我也经历了这里提到的所有快速编解码器

使用ZLIB编解码器我收到错误:

[zlib @ 0x7fb0d130a000] Specified pixel format yuv420p is invalid or not supported
Run Code Online (Sandbox Code Playgroud)

使用H264编解码器我收到一个错误:

[libx264 @ 0x7fe423869600] broken ffmpeg default settings detected
[libx264 @ …
Run Code Online (Sandbox Code Playgroud)

python macos video opencv

3
推荐指数
1
解决办法
5986
查看次数

python:元组列表中元组的链元素

我想在字符串中找到元素的组合.baseString具有可变长度,例如'tbyhn'或'tg'等.

我试过了:

import itertools

baseString = 'tgby'
prd = [it for it in itertools.product(base,repeat=len(baseString)-1)]
Run Code Online (Sandbox Code Playgroud)

prd 是一个如下所示的列表:

[('t', 't', 't'), ('t', 't', 'g'), ('t', 't', 'b'), ..., ('y', 'y', 'y')]
Run Code Online (Sandbox Code Playgroud)

我希望列表看起来像这样:

['ttt','ttg','ttb','tty','tgt',...,'yyy']
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

另外,如果我有一个像'prd'这样的元组列表,我如何只链接每个元组中的元素.

编辑

我不想要这些类型的结果:

   x = ['t','t','t','t','t','g','t','t','b','t','t','y',...,'y','y','y']

   x = ['tttttgttbttytgt...yyy']
Run Code Online (Sandbox Code Playgroud)

python

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