小编arm*_*iro的帖子

有没有可以从 RTL 语言的 PDF 中很好地提取文本的 python 包?

我使用过著名的 PDF 文件 Python 包,例如 PDFminer、PyMuPDF、PyPDF2 等。但它们都不能从用从右到左的语言(波斯语、阿拉伯语)编写的 PDF 文件中正确提取文本。

\n

例如:

\n
import fitz\ndoc = fitz.open("*/path/to/file.pdf")\ntxt = doc.getPageText(0)\nprint(txt)\n
Run Code Online (Sandbox Code Playgroud)\n

它返回类似这样的内容:

\n
\n

...

\n

\xd8\xa7\xef\xaf\xbe\xef\xbb\xa8\xef\xba\x98\xef\xba\xae\xef\xbb\xa7\xef\xba\x96\xd9\x88\xef\xae\x90 \xef\xba\x8e\xef\xbb\xa3\xef\xad\x99\xef\xaf\xbf\xef\xbb\xae\xef\xba\x97\xef\xba\xae \xef\xba\x91\xef \xbb\xaa \xef\xbb\xa3\xef\xba\xb4\xef\xbb\xa0\xef\xbb\x82

\n

\xef\xbb\xa3\xef\xba\xb4\xef\xbb\xa0\xef\xbb\x82 \xef\xbb\xab\xef\xba\x8e\xdb\x8c\xd8\xb2\xef\xba\x91 \xef\xba\x8e\xd9\x86

\n

...

\n
\n

有时单词会被颠倒(第一个字符在最后)并且单词在句子中被交换,有时单词会被正确书写。但它不知道如何处理零宽度非连接符(\xd9\x86\xdb\x8c\xd9\x85\xe2\x80\x8c\xd9\x81\xd8\xa7\xd8\xb5\xd9\x84 \xd9\x87),在波斯语中常用。

\n

我尝试了很多,但一无所获。提前感谢您的帮助。

\n

python pdf text-extraction persian text-alignment

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

在 AWS Athena 中连接两个表时选择除一列之外的所有列

我想在 AWS Athena 中使用 Presto SQL 语法连接两个具有许多列的大型表。我的代码非常简单:

select
    * 
from TableA as A
left join TableB as B
on A.key_id = B.key_id
;
Run Code Online (Sandbox Code Playgroud)

连接后,主键列 ( key_id) 重复两次。两个表都有超过 100 列,并且连接需要很长时间。如何修复该问题,使该key_id列在最终结果中不会重复两次?

PS AWS Athena 不支持except命令,与 Google BigQuery 不同。

sql join amazon-web-services presto amazon-athena

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