文本处理器

texta-parsers的Python项目详细描述


文本分析器

用于文件解析的Python包。在

包中的主类是DocParser。该包还支持复杂的电子邮件解析,该解析在类EmailParser中实现。如果只需要解析电子邮件,那么可以使用参数parse_only_extensions指定它。也可以单独使用EmailParser,但是附件将不会被解析。在

要求

大多数文件类型都是用tika解析的。所需的其他工具:

ToolFile Type
pst-utils.pst
digidoc-tool.ddoc .bdoc .asics .asice
rar-nonfree.rar
lxmlXML HTML

安装Ubuntu/an软件包时需要:

sudo apt-get install pst-utils rar python3-lxml -y

sudo sh install-digidoc.sh

Apache Tesseract的自定义语言包需要安装相关的语言包:

sudo docker run -p 9998:9998 docker.texta.ee/texta/texta-parsers-python/tikaserver:latest

使用MLP:

pip install texta-mlp

测试

python -m pytest -rx -v tests

说明

DocParser

文件解析器。输入可以是字节,也可以是字符串形式的文件路径。请参阅user guide更多信息。DocParser还包括EmailParser。在

电子邮件解析器

用于分析电子邮件和邮箱。支持的文件格式有Outlook数据文件(.pst)、mbox(.mbox)和EML(.EML)。可以与DocParser分开使用,但不解析附件。 用户指南可以找到here和文档here。在

实体链接器管道

只有在上一个生成器通过时才能使用EntityLinkers包装 它属于MLP处理器(它需要MLP处理的文档才能工作)。在

在下面的示例中,邮箱“Корзиеа.mbox”将由EmailParser解析, 由textamlp worker处理,以使用有关其实体的附加信息增强文本。 然后,这些实体被加载到内存中,用作实体链接器的输入。在

最后,实体链接的结果将被传递给Elasticsearch worker,将它们保存到索引中 用户选择的(请注意,将数据推送到已经存在的索引中时,可能会出现映射问题)

对于本例,需要安装textamlp包和Tika构建的运行实例。

fromtexta_mlp.mlpimportMLPfromtexta_parsers.email_parserimportEmailParserfromtexta_parsers.tools.entity_linker_wrapperimportEntityLinkerWrapperfromtexta_parsers.tools.elasticimportESImporterfromtexta_parsers.tools.mlp_processorimportMLPProcessorindex_name="personage_info"mlp=MLP(language_codes=["et","en","ru"])concat_wrapper=EntityLinkerWrapper()mlp_wrapper=MLPProcessor(mlp)elastic_importer=ESImporter("http://localhost:9200",index_prefix="rus")email_parser=EmailParser()generator=email_parser.parse("tests/data/Корзина.mbox")generator=mlp_wrapper.apply_mlp(generator)# Generator takes input in the form of a tuple containing the mlp output dictionary and a list (for attachments).generator=concat_wrapper.concat_from_generator(generator)pipeline_end=elastic_importer.push_linked_entities_into_elastic(generator,index_name)

所有实体链接信息不应位于名为“personage_info”的索引中

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
二进制字符串的java NumberFormatExceprion   java如何在Neo4j中查找/匹配/选择标识符名称   java哪一年的日期与原始年份相同?   java什么时候JAXB可以用于Json而不是XML?   java使用PayPal权限API进行PayPal支付   java Getting error在使用安卓 vision api扫描二维码时加载图像失败   java直接突出显示RichTextFX中的一个文本范围   java Resolve@RegisteredAuth2AuthorizedClient,其令牌在spring Security 5.2的spring server之外获得。十、   yyyymmddhhmmss的Java正则表达式   java我试图将google recaptcha与spring mvc集成,但GreCaptCharResponse总是返回false。这里有一些代码   java使用JsonPath将文本转换为json   java无法解析符号。Maven依赖项已就位,但代码为红色   java使用循环查找范围内具有不同数字的数字   java这个SwingWorker是否不重用ThreadPoolExecutor中的线程?