c# pdfsharp sample : Extract data from pdf file to excel control SDK system azure .net winforms console laclavik_ie_cai_final1-part1329

EmailAnalysisandInformationExtraction forEnterpriseBenefit
1011
Theextractionmodelletsuscreatecomplexextractionpatternsconsistingofother
patterns/macros,whichtogetherrepresentacompositestructure. Agoodexample
isthepostaladdresspattern,wherewehaveseveralmacrosdefinedforstreetname,
streetnumber,cityname,etc.andweusethemintheaddresspattern(seepatterns
exampleinSection2.1).
Weareabletobuildrichobjectsusingourtree-andgraph-orientedapproach
and the transformation techniques described above. . Complex x structures such as
thoseshowninFigure2canbetransformedintoXMLaccordingtostandardssuch
asCoreComponents,butcanalsobeusedtocreaterichontologyinstancesandthus
servenotonlytheneedsofinformationextractionbutforsemanticannotation[25]
as well. . One e semantic tree represents one emailmessage, but when we connect
the trees from the whole emailarchive (they areinterconnected through shared
objects), then n weget amulti-dimensionalsocialnetworkorgraph,which can be
usedforknowledgemanagementorforinferringhiddenrelationships,asdiscussed
inthenextsection.
2.3EmailSocialNetworksand GraphInference
InformationExtractor(IE)primarilyhandlesthestraightforwardcasesofstructured
objectslikepostaladdresswherethesub-components(streetname,ZIPcode,city,
etc.) immediatelyfollowoneanotherinapredefinedsequencecapturedbyregular
expressionsandmacros.Graphinferenceismeantforthetasksbeyondthereachof
thismethod. Onesuchexampleistogaugetherelationshipbetweenthetelephone
numbersandpeoplewhich,ingeneral,neednotimmediatelyfollowoneanotherin
theemailtext. Thetasktoassigntelephonenumberstopeopleisthenaformof
uncertaininference,whichweareaccomplishingthroughtheapplicationofspreading
activationtothemultidimensionalsocialnetworkgraphprovidedbytheinformation
extractor.
We implemented our social l network extractor r andanalyzer r inJavaontop p of
theinformationextractiontoolOnteaandopen-sourcegraphicallibraryJung8.The
noveltyofourapproachisintheapplicationofthespreadingactivationalgorithmto
thetwintasksofreconstructingthesocialnetworkfromemails,andthenefficiently
searchingthesocialgraph.Theprototypeimplementationdescribedbelowisawork
inprogress.TheevaluationofourinitialexperimentsisprovidedinSection4.3.
In[26]wehaveintroducedtwoapproachestobuildingmultidimensionalsocial
networkgraphsdependingontheformatoftheinformationextractionresults.Here
we only use the more advanced d one e where IE extracts complexobjects (e.g. an
address) consistingof simpler objects (e.g.a a street t name and a a ZIPcode), and
preservestheinformationabouttheirphysicalproximitybybuildingahierarchical
treethatincludes thenodes representingthesentences,paragraphsandblocksof
themessageinwhichtheywerefound.Graphisbuiltfromhierarchicaltreethatcan
beseeninFigure1intherightcolumnorinFigure2.Ifthesameobject(string)is
8
http://jung.sourceforge.net/
Extract data from pdf file to excel - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
extract data from pdf into excel; pdf form save with reader
Extract data from pdf file to excel - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extracting data from pdf files; pdf data extraction to excel
1012
M. Laclav´ık,
ˇ
S. Dlugolinsk´y, M.
ˇ
Seleng, M. Kvassay, E. Gatial, Z. Balogh, L. Hluch´y
found in several messages, it is connected to all of them, but represented as a single
object (node) in the graph. If the same object is found multiple times in the same
message, it has multiple links to that particular message (or to its parts), which was
our way of recording the strength of the bond.
2.3.1 Cumulative Edge Scorer with Attenuation
The structure depicted in Figure 3 can be visualized as a multipartite graph provided
the objects of each data type are considered a separate partition. The objects in each
partition have no connections among themselves, only to objects in other partitions,
which is advantageous from the point of view of computational complexity. For
the reconstruction of social network, our prototype Cumulative Edge Scorer with
Attenuation implements a simplified breadth-first variant of spreading activation.
The reconstruction consists in assigning the potential attributes, such as postal
addresses, telephone numbers, etc. to the identified primary entities – people or
organizations. For the purpose of testing our prototype we have chosen the task of
assigning telephone numbers to people.
Fig. 3. Spreading activation in a multipartite graph. It starts at one attribute instance
(phone number) indicated by the red arrow (center left) and flows towards candidate
primary entities (email IDs) by a variety of ways. Since the activation gets attenuated
each time it passes through an edge, the shortest path will carry over the greatest
increment. But the longer paths can be so numerous that – depending on the value
of attenuation and other parameters – their accumulated contribution will ultimately
prevail
We were able to simplify our implementation of spreading activation by letting
each node fire only once. This was possible because in our case the spreading ac-
tivation always started from a single node – the attribute instance that we were
C# PDF Text Extract Library: extract text content from PDF file in
Able to extract and get all and partial text content from PDF file. How to C#: Extract Text Content from PDF File. Add necessary references:
export excel to pdf form; how to fill in a pdf form in reader
VB.NET PDF Text Extract Library: extract text content from PDF
Extract and get partial and all text content from PDF file. Extract highlighted text out of PDF document. Extract Text Content from PDF File in VB.NET.
save pdf forms in reader; extract data from pdf table
Email Analysis and Information Extraction for Enterprise Benefit
1013
trying to assign to a primary entity. Similarly, we did not restrict the maximum
value of the activation value that a node could accumulate. Such a restriction is
natural and appropriate e.g. in neural networks, but in our case it would be counter-
productive since we were using the accumulated activation as a score to determine
the most likely “owner” of the attribute instance. The result of these simplifica-
tions is an elegant and compact procedure described by the following JAVA-based
pseudo-code.
Breadth-first variant of Spreading Activation. Current
wave collection
(implemented as a HashMap with the node as key and its accumulated
activation as
value) contains the nodes that are going to fire. At the beginning, it only contains
one node – the attribute instance that we are trying to assign to a primary entity.
In the next step, all its neighbouring nodes are placed into the new
wave collec-
tion as candidates for firing in the next iteration, and their accumulated activation
is incremented by the value of activation, which reflects both the edge attenua-
tion and the degree of the firing node. The iteration is completed when all the
neighbours of all the nodes in the current
wave are processed. After each itera-
tion, the number of iterations is incremented and the nodes in the current
wave are
transferred into the fired collection so they do not fire again. The current
wave is
then refilled by the new
wave.get
activated
vertices() method that returns the nodes
meeting the activation criteria. The nodes representing the primary entities never
fire. They accumulate in the new
wave and are returned at the end of the algorithm
by the get
output
type
vertices() method. Their accumulated activation becomes
their score, and the primary entity with the highest score will “own” the attribute
instance.
do
for (Vertex v : current_wave)
activation = v.accumulated_activation();
activation = activation/(attenuation * v.degree());
for (Edge e : v.outgoingEdges())
Vertex w = neighbouring_vertex(v,e);
if (!has_fired(w))
new_wave.smart_add(w, activation);
total_iterations++;
fired.add(current_wave);
current_wave = new_wave.get_activated_vertices();
new_wave.remove_activated_vertices();
while (!done());
return new_wave.get_output_type_vertices();
The resulting scores of primary entities for each attribute instance (internally
stored in nested HashMaps) can be output in the form of a hierarchical XML. This
XML can be converted to HTML by XSL transformations. Results of spreading
activation algorithm are also exploited in Email Social Network Prototype discussed
in Section 3.2 and shown in Figure 6.
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Data: Read, Extract Field Data. Data: Auto Fill-in Field
extract data from pdf using java; extract data from pdf form
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
External cross references. Private data of other applications. Flatten visible layers. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
vb extract data from pdf; pdf form data extraction
1014
M. Laclav´ık,
ˇ
S. Dlugolinsk´y, M.
ˇ
Seleng, M. Kvassay, E. Gatial, Z. Balogh, L. Hluch´y
3PROTOTYPES AND USE CASES
In this section we discuss the Acoma system, which integrates email analysis and
information extraction approaches with recommendation and email social network
search. We also describe prototypes for contextual recommendation and email social
network search on simple use cases.
3.1 Contextual Recommendation Prototype and Use Case
We have developed simple contextual recommendation, built on top of the extracted
data. The data needed for the recommender are in the form of extracted key-value
pairs formed into semantic trees discussed in Section 2.2. For this kind of recom-
mendation we do not use social networks or graph data, which are used in the next
use case. Context for the recommender is key-value and tree based representation
of email message. When the information extraction results are available (Figure 1),
the email is further processed and additional information is added to the message
in the form of HTML links or text attachments (see Figure 4). These additions
contain further relevant information and knowledge, hints or links to business re-
sources such as document repositories, databases or information systems needed in
the detected business context. When checking for new emails, the users may receive
added information/hints either in the modified (enriched) email as an attachment
to the original unmodified message (this applies mainly to mobile devices), or in the
original message as an attachment to the enriched HTML email with the additional
information as seen in Figure 4. In this way the users can configure the email en-
richment process according to their needs depending on device, email client or user
preferences.
Our solution can successfully process mainly formal, system-generated emails
such as Amazon shipment in Figure 2 on the right side. Formal emails are present
in many cases of system-to-person communication, for example when purchasing or
ordering goods and services on the Internet, in case of transaction status emails or
transaction notifications. Typical examples are bank statements, hotel or air-ticket
reservation confirmations, invoices to be paid, or shipped goods notifications. Such
formal emails with fixed structure are easier to analyze and enrich with context-
relevant information. They are often used in business tasks of SMEs and currently
need to be processed manually, while we are able to process them semi-automatically.
Our experiments, such as the example in Figure 4, have demonstrated that even
regular person-to-person emails contain many structural parts and objects which
can be detected using patterns or gazetteers.
Our solution, which connects to the email infrastructure and enriches the mes-
sages according to the context provided by the information extraction, is called
Acoma [31] and is developed as an open source project9. Its internal architecture
and modularity is described in Section 3.3.
9
http://acoma.sourceforge.net/
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Microsoft Office Word, Excel and PowerPoint data to PDF form. Merge PDF with byte array, fields. Merge PDF without size limitation. Append one PDF file to the end
extract table data from pdf to excel; how to save editable pdf form in reader
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to the end of another and save to a single PDF file.
how to save pdf form data in reader; how to fill out pdf forms in reader
Email Analysis and Information Extraction for Enterprise Benefit
1015
Fig. 4. The same email as in Figure 1 is now enriched and changed into an HTML message
with recommendations and links that can help process the email and the tasks it
represents. For example, the user may go to the commercial register to find further
information about the company, see its address on the map, or search for person in
Google or some legacy system such as CRM.
3.1.1 Example of Use
Asample email processed by the Acoma system can be seen in Figure 4. It is based
on a modified Anasoft Helpdesk request visible in Figure 1 (we changed the private
info and translated the email into English). Acoma replaced the original plain text
message by an HTML message including the recommendation hints with links. The
links can be placed either inside the message text or on the right side of the message
depending on the configuration. (The original email is attached and available to
the user if needed.) Thus, the email message contains suggestions for actions to be
taken to process the email.
Actions such as accessing a help desk request or a person in a legacy system,
showing an address on a map or accessing company information in the commercial
registry can be performed by clicking on the recommended hint represented by a box
with icon.
The modified email also contains the link that will display the Graphical User
Interface (GUI) related to the message in the browser. The GUI contains similar
or extended information related to hints and provides the dynamic and interactive
functionality, which cannot be achieved by the static HTML included in the email.
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Library. Best Microsoft Office Excel to adobe PDF file converter SDK for Visual Studio .NET. Merge all Excel sheets to one PDF file. Export
extracting data from pdf into excel; pdf data extraction open source
C# PDF File Compress Library: Compress reduce PDF size in C#.net
All object data. File attachment. External cross references. Private data of other applications. Flatten visible layers. C#.NET DLLs: Compress PDF Document.
extract data from pdf to excel; extracting data from pdf forms
1016
M. Laclav´ık,
ˇ
S. Dlugolinsk´y, M.
ˇ
Seleng, M. Kvassay, E. Gatial, Z. Balogh, L. Hluch´y
It can also integrate the legacy systems for which web GUI is not available. GUI
offers extensive functionality but is not discussed in this paper.
Depending on the settings and the email client, Acoma can modify the email
messages to include the text, html attachments or just a link to the message GUI.
3.1.2 Recommendation Hints
Information extraction results provide the necessary context for recommendation.
Recommendation subsystem is quite simple. It just matches and fills in the text of
hints with key-value pairs discovered by IE. It iterates over predefined hint templates
and if the required key-value pair (keys are in {} brackets) for a hint is found, the
hint template is filled in with the extracted information (value of the key-value pair).
The results are then passed on for message post-processing to be included in the
email as HTML-formatted output or simple text attachment with links.
Table 1 lists hint templates; in Table 2 the hints are replaced by the key-value
pairs extracted from the email using the Ontea IE discussed in Sections 2 and 2.1.
Hint templates can be defined through special user interfaces (Figure 5), where the
same information as that available in Table 1 can be defined using the GUI.
Fig. 5. Interface for editing generic hint templates, with See address on the map hint
template displayed. Objects that have to be found in order to fire the hint are
selected on the right.
The first hint show address on the map is more complex than others, because
it requires three objects to be found in the text of the message (street, settlement
and zip). This hint is also shown in Figure 5. The problem arises if more than
one street or one city name are discovered in the text of the email. In that case we
first need to decide, which street and city belong to which address. We are solving
this by email segmentation and trees (Section 2.2), and the required objects had to
appear only once in common subtree, which can be paragraph, sentence or complex
object in tree structure. If we will find all the required objects within one sub-tree
(see Figure 1, for the address sub-tree, middle part of the Figure 2 for sentence or
paragraph subtree or right part of Figure 2 for product sub-trees) the hint is fired. If
we cannot locate the single required key-value pairs for a given hint template within
one common sub-tree, the hint is not fired.
Email Analysis and Information Extraction for Enterprise Benefit
1017
Hint Templates
See {address:Street}, {address:ZIP} {address:Settlement} in Google Maps
http://.../maps?q={address:Street},+{address:ZIP}+{address:Settlement}
address:Street, address:ZIP, address:Settlement
link
Organization {org:Name} in commercial register
http://orsr.sk/hladaj
subjekt.asp?OBMENO={org:Name}&PF=0&SID=0&R=on
org:Name
orsr
See request # {doc:ChangeRequest}
http://www.ana.sk/crt/main/task
detail.aspx?taskId={doc:ChangeRequest}
doc:ChangeRequest
product
See person: {person:Name}
http://www.google.com/search?q={person:Name}
person:Name
link
Table 1. List of hint templates used in the example shown in Figure 4. First line: text of
hint; second line: link (URL); third line: objects to be found in the text in order
to match the hint; last line: hint type/icon. Text in brackets {} are object types
(keys) detected by the IE and replaced by concrete values in the generated hints.
Generated Hints
See Mlynsk´a dolina 41, 811 02 Bratislava in Google Maps
http://...google.com/maps?q=Mlynsk%C3%A1+dolina+41,+811+02+Bratislava
link, 174, 209
Organization ANASOFT APR in commercial register
http://orsr.sk/...asp?OBMENO=ANASOFT+APR&PF=0&SID=0&R=on
orsr,155,166
See request # 10/04/0647
http://www.ana.sk/crt/main/task
detail.aspx?taskId=43048
product,59,69
See person: Martin
ˇ
Seleng
http://www.google.com/search?q=Martin+%C5%A0eleng
link,140,153
See person: Jeckel
https://intranet.ana.sk/.../DispForm.aspx?ID=61
link,113,119
Table 2. List of generated hints based on the templates from Table 1. First line: text of
hint; second line: link (URL) to external system; third line: hint type/icon, start
and end position in text.
1018
M. Laclav´ık,
ˇ
S. Dlugolinsk´y, M.
ˇ
Seleng, M. Kvassay, E. Gatial, Z. Balogh, L. Hluch´y
Table 2 shows the hints generated from the hint templates in Table 1. The first
hint is the already mentioned multi-object match hint, which can be used for show
address on map, process transaction or manage contact details user actions. The
second hint is the simplest hint requiring only one object (organization name) in the
text; the same name is then reused for generating the link to the commercial registry.
The third hint is again related to a single detected object, change request ID from
the Anasoft Helpdesk application, but please note that while we are detecting the
ID 10/04/0647 in the text, to access the intranet system we need to convert this
ID value into 43048 in order to generate the appropriate URL. This is done by an
extension, which is not described in this paper but uses the idea of key-value pair
transformations mentioned in Section 2.1 and described previously in [25]. Similarly,
the last hint appears twice in the email, since two people were detected. If a person
is detected as an Anasoft employee, the link to his/her Anasoft intranet card is
generated, otherwise just a link to Google Search is offered.
3.2 Email Social Networks Search Prototype and Use Case
Email Social Network prototype can be also integrated as a module into Acoma
system, where it exploits email analysis and extraction in form of key-value pairs,
semantic trees as well as their interconnection into graph of social network. It
exploits the spreading activation inference algorithm discussed in Section 2.3.
Email Social Network Search Module enables the user to search real world ob-
jects mentioned in an email or email archive, and their relations. Exploiting the
module the user can discover personal email addresses, telephone numbers, com-
pany names, company products and so on. When the user accesses the module
GUI, all the objects related to the current email message (i.e. people, products, con-
tact details) are shown as results and the user can navigate deeper into the object
graph by clicking on any object. The user can, for instance, select a persons name
to get the company where this person works, then select the company to get its
products, and so on.
Figure 6 shows the user interface of the Email Social Network Search module.
Its input is a key-value pair representing the business object (in this case, person)
extracted from the email. When pressing the search button, the spreading activation
algorithm is activated on the social network graph. The algorithm returns all the
relevant objects (key-value pairs) for the searched object. For example, it returns
organization names, email addresses, postal addresses, telephone numbers and loca-
tions. The left part of the screenshot shows the restriction of the search to return
only the objects of a certain type (type is defined by the key of the key-value pair).
In this case we wanted to get the phone number of the person Enrico Morten, which
was quite low in the main (mixed-type) list, so the search was further restricted
to return only the relevant phone numbers for this person by clicking on the type
TelephoneNumber in the left panel of GUI.
The search algorithm can also be improved by allowing the users to delete the
wrongly extracted objects or to connect the various aliases of the same object (e.g.
Email Analysis and Information Extraction for Enterprise Benefit
1019
Server
Desktop
Mail Client
Browser
Mail Server
SMTP
Acoma
Server
Desktop
Mail Client
Browser
MailServer
POP3
IMAP
Acoma
Fig. 7. Acoma on the server (left) and on the desktop (right)
client or even mobile device, without requiring changes to working practices or the
adoption of new tools. By a combination of server and desktop use, the users can
ensure that security and privacy issues are taken into account. Users and providers
can be aware of what data is shared and passed via the communication.
3.3.1 Adaptability
Acoma is implemented using the OSGi10 approach, which is one of the standards
for modular systems in Java. We are using the Apache Felix11 implementation of
OSGi. This enables us to adapt the solution to integrate different functionalities
such as context sensitive recommendation or Email Social Network Search into one
integrated system accessible from user emails. We believe that such an email based
system can benefit from the community approach: just as people are creating ap-
plications for Facebook or modules for different open source software, Acoma users
can create, modify and share new modules, which will be able to execute or support
specific email activities (for example, the Geo module for identifying and displaying
the addresses on a map as shown in Figure 4). Other module examples include pack-
age tracking, event detection and adding events to calendar, Email Social Network
Search module or modules for processing bank statements from a specific bank, ser-
vice provider or mobile operator. This way the user can just download and add new
modules to their Acoma system based on their needs, and so benefit from additional
functionality. Even the service providers can create and share Acoma modules to
their benefit. Users can be notified on module availability and install them upon
receiving the notification. Within 6 SMEs which we have partially evaluated, we
have identified the following modules: Catch a contact; Identification of the respon-
sible person (related also to Email Social Network Search module); Customer card
(CRM); Geo module; Voting module; Generic hint module; Generic key-value trans-
formation and URL transformation modules. In addition, partner search module,
attachment manager and mail template module are being developed in the scope of
Commius project.
10
http://www.osgi.org/
11
http://felix.apache.org/
Documents you may be interested
Documents you may be interested