我正在尝试让Tesseract输出一个带有标记边界框的文件,该边界框来自页面分割(预OCR).我知道它必须能够"开箱即用",因为在ICDAR比赛中显示的结果是参赛者必须分段和各种文件(学术论文在这里).以下是该论文中的一个示例,说明了我想要创建的内容:

我已经使用brew构建了最新版本的tesseract brew install tesseract --HEAD,并且一直在尝试编辑位于/usr/local/Cellar/tesseract/HEAD/share/tessdata/configs/输出标记框中的配置文件.使用hocr配置接收的输出,即
tesseract infile.tiff outfile_stem -l eng -psm 1 hocr
Run Code Online (Sandbox Code Playgroud)
给出了一切的边界框,并在class标签中有一些标签,例如
<p class='ocr_par' dir='ltr' id='par_5_82' title="bbox 2194 4490 3842 4589">
<span class='ocr_line' id='line_5_142' ...
Run Code Online (Sandbox Code Playgroud)
但我无法想象这一点.是否有可视化hOCR文件的标准工具,或者是否可以创建带有Tesseract内置边界框的输出文件?
目前的头版版本详情:
tesseract 3.04.00
leptonica-1.71
libjpeg 8d : libpng 1.6.16 : libtiff 4.0.3 : zlib 1.2.5
Run Code Online (Sandbox Code Playgroud)
我真的希望使用命令行工具实现这一点(如上例所示).@nguyenq指出我的API参考,遗憾的是我没有c ++经验.如果唯一的解决方案是使用API,请提供一个快速的python示例吗?
我有一个Pandas DataFrame如下:
a b c d
0 Apple 3 5 7
1 Banana 4 4 8
2 Cherry 7 1 3
3 Apple 3 4 7
Run Code Online (Sandbox Code Playgroud)
我想按行'a'对行进行分组,同时将列'c'中的值替换为分组行中的值的平均值,并添加另一列,其中列'c'中的值的std偏差已经计算出其平均值.对于要分组的所有行,"b"或"d"列中的值是常量.所以,期望的输出将是:
a b c d e
0 Apple 3 4.5 7 0.707107
1 Banana 4 4 8 0
2 Cherry 7 1 3 0
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么?
R有一个很好的快捷方式,可以运行光标当前所在的行,然后将光标移动到下一行(cmd + return).在matlab中,您必须突出显示该行,然后运行突出显示的部分(shift + F7).
有没有办法创建'R like'运行线快捷方式?我正在使用OSX.
我正在尝试使用正常的markdown表示法在代码块之外创建一个表,并为其添加标题.这是一个示例文件(取自此处:
---
output: pdf_document
---
| First Header | Second Header | Third Header |
| :------------ | :-----------: | -------------------: |
| First row | Data | Very long data entry |
| Second row | **Cell** | *Cell* |
| Third row | Cell that spans across two columns ||
[Table caption, works as a reference][section-mmd-tables-table1]
Run Code Online (Sandbox Code Playgroud)
如果我将我的数据制作成一个实际的data.frame并kable按照此处所示使用,我可以实现这一点,但我希望避免这样做.
在渲染降价单元格时,在乳胶部分之后显示垂直条.有没有办法删除这些?
例如,markdown单元格中的以下代码:
$\left[ \begin{array}{cccc}
x_{11} & x_{12} & \ldots & x_{1D} \\
x_{21} & x_{22} & \ldots & x_{2D} \\
x_{31} & x_{32} & \ldots & x_{3D} \\ \end{array} \right]$
Run Code Online (Sandbox Code Playgroud)
呈现为
和
$\mathbf{W} \in \mathbb{R}^{D\times K}$
Run Code Online (Sandbox Code Playgroud)
呈现为
Mac OS 10.10.5
chrome 48.0.2564.48(Official Build)beta(64位)
ipython notebook --version 4.0.6
我试图用具有已知均值和协方差的2D高斯分布来增加具有轮廓的图.理想情况下,我只需要指定函数,它将在2D中绘制(如stat_function2维除外).我可以geom_raster通过生成概率网格来实现.我能geom_contour2d以某种方式使用吗?
m <- c(.5, -.5)
sigma <- matrix(c(1,.5,.5,1), nrow=2)
data.grid <- expand.grid(s.1 = seq(-3, 3, length.out=200), s.2 = seq(-3, 3, length.out=200))
q.samp <- cbind(data.grid, prob = mvtnorm::dmvnorm(data.grid, mean = m, sigma = sigma))
ggplot(q.samp, aes(x=s.1, y=s.2)) +
geom_raster(aes(fill = prob)) +
coord_fixed(xlim = c(-3, 3), ylim = c(-3, 3), ratio = 1)
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过Pweave. 在Pweave文档中,它声明您可以使用 style 声明代码块```{python}。但是,例如,当我尝试使用编译时,pweave -f pandoc FIR_design.mdw块不会运行,而是逐字放置。
<<fig = True, width = '12 cm', echo = False>>=
from pylab import *
plot(arange(10))
show()
@
Run Code Online (Sandbox Code Playgroud)
降价等价物将是:
```{python, fig = True, width = '12 cm', echo = False}
from pylab import *
plot(arange(10))
show()
```
Run Code Online (Sandbox Code Playgroud)
当我尝试使用 Markdown 语法运行示例时,它只是逐字添加它们而不运行块。这是预期的吗?如果是这样,我应该如何转换我的.Rmd文档以使其可以在Pweave. 我必须将它们转换为noweb样式吗?
这是以.Rmd 格式重写的文档示例文档FIR_design.mdw(示例):
我正在尝试从数据框中创建一个布尔掩码(或索引列表),以指示多列与列表中的某些组合相匹配的位置。下面是一个例子:
import pandas as pd
df = pd.DataFrame({'A': ['alice', 'bob' , 'charlie' , 'dave' , 'dave'],
'B': ['andy' , 'bridget', 'charlotte', 'diana', 'andy'],
'C': ['some' , 'other' , 'stuff' , 'here' , '!' ]})
pairs = pd.DataFrame({'A': ['alice', 'dave'],
'B': ['andy' , 'diana']})
Run Code Online (Sandbox Code Playgroud)
我想要的输出是
[True, False, False, True, False]
Run Code Online (Sandbox Code Playgroud)
或者
[0, 3]
Run Code Online (Sandbox Code Playgroud)
重要的是,我不希望返回行索引4即['dave', 'andy', '!']。我可以通过转换回列表来实现我想要的......但这感觉就像一个很长的路要走,我想有一种“熊猫”的方式来做到这一点!
df_list = df[['A', 'B']].values.tolist()
pairs_list = pairs.values.tolist()
[idx for idx, row in enumerate(df_list) if row in pairs_list]
Run Code Online (Sandbox Code Playgroud) 我想通过应用一个调用另一个数据帧的函数来改变数据帧.我可以通过几种不同的方式实现这一点,但想知道如何"正确"地做到这一点.
这是我正在尝试做的一个例子.我有一个数据帧有一些开始时间,第二个有一些定时观察.我想返回一个数据帧,其中包含开始时间,以及在开始时间之后某个窗口内发生的观察数.例如
set.seed(1337)
df1 <- data.frame(id=LETTERS[1:3], start_time=1:3*10)
df2 <- data.frame(time=runif(100)*100)
lapply(df1$start_time, function(s) sum(df2$time>s & df2$time<(s+15)))
Run Code Online (Sandbox Code Playgroud)
到目前为止我用dplyr得到的最好的是以下(但这会失去身份变量):
df1 %>%
rowwise() %>%
do(count = filter(df2, time>.$start_time, time < (.$start_time + 15))) %>%
mutate(n=nrow(count))
Run Code Online (Sandbox Code Playgroud)
输出:
Source: local data frame [3 x 2]
Groups: <by row>
# A tibble: 3 × 2
count n
<list> <int>
1 <data.frame [17 × 1]> 17
2 <data.frame [18 × 1]> 18
3 <data.frame [10 × 1]> 10
Run Code Online (Sandbox Code Playgroud)
我原以为能够做到这一点:
df1 <- data.frame(id=LETTERS[1:3], start_time=1:3*10)
df2 <- data.frame(time=runif(100)*100)
df1 %>% …Run Code Online (Sandbox Code Playgroud) 我希望能够像在R中一样(使用str()函数)在Matlab/GNU Octave中查看对象的结构.有没有这样做的功能?一个示例任务是在矩阵中返回nr rows和cols,但也返回给定函数的所有参数.