convert pdf page to image c# itextsharp : Copy protecting pdf files Library SDK class .net winforms ajax Francis_Flynn0-part1549

Casualty Actuarial Society E-Forum, Spring 2010  
Text Mining Handbook 
Louise Francis, FCAS, MAAA, and Matt Flynn, PhD 
Motivation.  Provide a guide to open source tools that can be used as a reference to do text mining 
Method.  We apply the text processing language Perl and the statistical language R to two text databases, 
an accident description database and a survey database. 
Results.  For the accident description data new variables are extracted from the free-form text data that are 
used to predict the likelihood of attorney involvement and the severity of claims.  For the survey data, the 
text mining identified key themes in the responses.  Thus, useful information that would not otherwise be 
available was derived from both databases. 
Conclusion.  Open source software can be used to apply text mining procedures to insurance text data. 
Availability.  The Perl and R programs along with the CAS survey data will be available on the CAS Web 
Keywords.  Predictive modeling, data mining, text mining
Text mining is an emerging technology that can be used to augment existing data in corporate 
databases by making unstructured text data available for analysis.  An excellent introduction to text 
mining is provided by Weiss, et al. (2005).  Francis (2006) provides a short introduction to text 
mining with a focus on insurance applications.  One of the difficulties in getting started with text 
mining is acquiring the tools, i.e., the software for implementing text mining.  Much of the software 
is  expensive and/or  difficult  to  use.   For  instance,  some of the software  requires purchase  of 
expensive data mining suites.  Other commercial software is more suited to large scale industrial 
strength applications such as cataloging and searching academic papers.  One innovation that has 
made budget-friendly software available to text miners is open source software.  Two of the very 
popular open source products that will be featured in this paper are R and Perl.  R is a programming 
language that has wide acceptance for statistical and applied mathematical applications.  Perl is a 
programming language that is particularly strong in text processing.  Both languages can be easily 
downloaded from the  Internet.  Moreover, a large body of literature now exists to guide  users 
through specialized applications such as text mining.  This paper will rely heavily on information in 
the  book  Practical  Text  Mining  in  Perl  by  Roger  Bilisoy  (2008)  when  illustrating  text  mining 
applications in Perl.   
It will also rely heavily on the R tm
library. While this library is described by Feinerer, Hornik, 
and Meyer (2008), the applications are not insurance applications, and a significant amount of trial 
and error can be required to achieve successful application of the software to insurance problems.  
Copy protecting pdf files - C# PDF Password Library: add, remove, edit PDF file password in, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
break password on pdf; create password protected pdf online
Copy protecting pdf files - VB.NET PDF Password Library: add, remove, edit PDF file password in, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
adding a password to a pdf; protected pdf
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
We hope to make it easier for potential users to employ Perl and/or R for insurance text mining 
projects by illustrating their application to insurance problems with detailed information on the code 
and functions needed to perform the different text mining tasks. 
In this paper we will illustrate the application of the text mining software using two applications: 
1) analyzing a free-form accident description field in an insurance claims database and 2) analyzing 
free-form comments in a survey of actuaries.  Both applications involve relatively small text fields, 
compared to those anticipated by many text mining products.  We will also show how text mining 
can be used to generate new information from the unstructured text data. 
1.1 Research Context 
The field of text mining is rapidly evolving, but at this time is not yet widely used in insurance.  
Kolyshkina and Rooyen (2006) presented the results of an analysis that applied text mining on an 
insurance claims database.  They applied text mining to a free-form claim comment field to derive 
“concepts” from the description.  Francis (2006) presented  an introduction to text mining that 
provided a simple illustration using a liability claim description field. 
A number of texts introduce text mining to less technical audiences.  Inmon and Nesavich (2007) 
provide a nontechnical overview that describes some of the history and applications of text mining.  
This  book  gives  an  overview  of  the  procedures  used  to  mine  data,  from  preprocessing  and 
integrating the text to using data mining procedures like self-organizing maps.  Weiss, et al. (2005) 
provide a comprehensive introduction that includes pseudo code to implement the different parts of 
the process as well as access to a simple software tool that implements many of the procedures in 
the book.  Weiss’s software tool provides an inexpensive way to gain insights into text mining and to 
perform some text processing and pattern recognition procedures.  However, the software has some 
limitations.  It requires download and installation of Java along with the text mining software, can 
only work with data in xml format, produces output that requires further processing by another 
programming language before common analyses can be performed and has a steep learning curve.  
A more elaborate description of difficulties encountered when utilizing text mining software, both 
open source and commercial, is provided by Francis (2006).  Francis suggests that text miners may 
want to learn one of the languages specifically oriented towards text processing such as Perl or 
The rapidly evolving field of text mining has seen advances in the open source tools available for 
text mining.  These tools include 1) introductions to programming in Perl such as Bilisoly (2008), 
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Support protecting PDF file by adding password and digital file formats; merge, append, and split PDF files; insert, delete, move, rotate, copy and paste
password on pdf file; a pdf password online
.NET PDF SDK - Description of All PDF Processing Control Feastures
processing, extracting, annotating, compressing, and protecting PDF document can Able to remove and delete images from PDF; Easy to copy, paste, and cut image
add password to pdf file; annotate protected pdf
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
which specifically  focus  on text mining, 2) interfaces to Perl in some of the  popular statistical 
programming  languages  such  as  SAS,  3)  new  text  mining  functions  in  the  popular  analytical 
programming language R, and 4) interfaces to R in some of the popular programming languages.  
This paper will introduce text mining users to two of these open source tools and provide two 
detailed examples of their application.  The two examples will be of particular interest to actuaries 
and insurance professionals.
1.2 Objective 
The objective  of  this  paper  is  to improve  the  accessibility and  usability of text  mining for 
insurance applications.  By documenting two open-source software languages that can be used for 
text mining we hope to reduce the significant learning curve that can be associated with text mining 
software.  We focus on two popular open-source languages that can be downloaded for free.  This 
paper will describe in some detail two applications of text mining in insurance.  Helpful references 
for those new to Perl and R will also be provided, as this paper is not a self-contained introduction 
to these languages. 
1.3 Outline 
The remainder of the paper proceeds as follows:  
Section 2 will discuss the first phase of text mining: preprocessing of text data and will 
present techniques that are programmed in Perl;  
Section 3 introduces  the  R text mining  library  and  will apply  it  to the GL accident 
description data;  
Section 4 will apply the R text mining functions to the survey data.   
Both sections 3 and 4 will introduce the second or analytical phase of text mining along 
with their implementation using R statistical functions.   
Section 5 will summarize the analysis and present conclusions. 
There are two main phases to text mining: 1) Preprocessing and integration of unstructured data, 
and 2) statistical analysis of the preprocessed data to extract content from the text. Section 2 will 
cover the preprocessing phase and show how Perl can be used for the preprocessing.  
C# PDF Image Redact Library: redact selected PDF images in
PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C# Best .NET PDF document manipulation SDK library for PDF image information protecting in C#
password on pdf; password pdf
C# PDF Text Redact Library: select, redact text content from PDF
PDF file & pages edit, C#.NET PDF pages extract, copy, paste, C# Best .NET PDF document manipulation SDK control for PDF text content protecting in Visual
adding password to pdf file; create password protected pdf from word
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
2.1 Data and Software 
Two different data sets will be used to illustrate the open source tools: a claim description database 
and a survey response database.  The claim description data is a field from a general liability (GL) 
database.  Table 2.1 provides a sample of several records of the claim description data. 
Table 2.1 
Accident Description 
Crew was hooking a jumper pipe between fire line and water line in 
order to perform a flush test. when the line was charged the jumper 
pipe slipped off causing water to spray on newly hung dry wall. 
Damage to one piece of dry wall and few pieces of i. 
CAT 345 traveling under a guide wire when the back of the boom 
caught the wire.  When the wire became taut it caused the power 
pole to break and wire to snap. 
Insd was working and damaged buried service wires at a customer’s 
The GL data also contains two additional variables: the claim’s severity developed to ultimate and 
trended to a common point in time and an indicator variable encoding whether or not an attorney is 
involved in the claim.  Both variables are potential dependent variables in a predictive model.  That 
is,  we  may  be  interested  in  what  the  characteristics  are  of  claims  that  tend  to  have  attorney 
involvement,  as  the  claims  adjusters  might  be  better  able  to  manage  claims  if  they  had  such 
information.  In addition, the claim severity variable is a key outcome variable of the underwriting 
and claims adjustment process and may assist a company to better understand and manage this 
The survey data is from the Casualty Actuarial Society Quinquennial Survey conducted in 2008.  
Numerous questions on the survey allowed for write-in answers.  One of the questions asked was: 
“What are the top two issues that will impact the CAS in the next five years?”  Table 2.2 shows an 
example of some of the answers to the question. 
Table 2.2 
Survey Question: Top Two Issues Affecting CAS 
A crisis that could affect our ability to "regulate" ourselves. 
A need to deal more thoroughly with nontraditional risk management approaches. 
Ability of members to prove they are more than just number crunchers. 
Ability to convince noninsurance companies of the value/skills offered by CAS 
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Raster
For instance, load images from stream or byte array, print images to tiff or pdf, annotate images Signature feature for protecting images. Images files can be
convert password protected pdf to excel; convert protected pdf to word online
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
The survey data does not contain any potential dependent variables.  When analyzing free-form 
survey responses, text mining is used to group the unique response into categories of responses, as 
an aid in reducing the many individual responses to a smaller set that still faithfully represents the 
responses supplied. 
2.1.1 The Software - Perl 
Two software programs are featured in this paper: Perl and R.  Each must be downloaded from 
the appropriate Web site and then installed, before it can be used. 
The Perl Web Site is
Figure 3 displays the screen for the home page of the Web 
site.  By clicking on “Download” on the top left side, you will be redirected to a site where you can 
download  Perl.    Perl  must  then  be  installed  by  running  the  execute  file.    A  commonly  used 
alternative is ActivePerl from
One common “gotchya” 
with either install (or, battling multiple Perl installs/versions on Windows platforms) is that the 
Windows command search must be correct for Windows to find the desired perl.exe file.  This 
executable search path is governed by the search path for the commands.  If things are amiss, one 
can check/edit the setting of one’s Window’s environmental “PATH” variable.  The current setting 
can be examined from a cmd prompt by simply typing “PATH”.  The path variable itself can be 
easily  set  in  standard  Windows  fashion  from  the  desktop,  right-click  on  “My  Computer”, 
“Properties”, “Advanced”, “Environmental Variables” button, scroll-down the tiny window to find 
the path variable and click on the “Edit” button, and adjusting the very long string in the tiny edit 
While free documentation for using Perl is available on the Perl Web Site, there are many books 
that will guide the new user through key aspects of its use that may be difficult to understand solely 
from the online documentation. The book Practical Text Mining with Perl by Bilisoly (2008) is an 
excellent resource for text mining in Perl that requires no prior exposure to Perl. However the book 
does not  cover  a  few introductory  topics  such  as  installation  and header lines  required  at  the 
beginning of Perl programs.  Perl for Dummies (Hoffman, 2003) covers these topics in its first few 
Key things to keep in mind when using Perl are: 
Perl must be run from DOS.  One gets to DOS by finding the Command Prompt on the 
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
Programs menu.
Before running Perl, switch to the Perl directory (i.e., if Perl was installed and it is in the 
folder named Perl, in DOS, type “cd C:\Perl”).   
Programs need to be saved in text processing software.  We recommend Notepad rather 
than Word, as some of the features of Word cause unexpected results when running a 
program.  We recommend using the extension “.pl”. 
The header line of a Perl program is dependent on the operating system.  Appendix B 
provides examples of the header line that executes successfully on a Windows computer. 
To run a Perl program type the following at the command prompt: 
Perl program_name input_file_name,  output_file_name
The input and output files are only required if the program requires a file and the file 
name is not contained in the program itself. 
A few aspects of the syntax to help readers follow the Perl code are: 
Each line ends with a semicolon. 
The # is used for comments. 
Scalar variable names begin with a $.  
Vector variable names begin with the @. 
A  specific  value  of  an  array  is  accessed  with  brackets; $Array  [1]  accesses  a 
specific  value of an array.  Note the use of  the dollar sign when accessing a 
specific array value. 
The operating system used with Perl for this paper was Windows XP.  The command prompt is found by clicking on 
“Programs” and then “Accessories.”  Placing a shortcut on the desktop will make it more efficient to get to DOS. 
The input and output file may be contained in the program code, as illustrated in some of our examples, rather than 
entered at runtime.  
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
Figure 2.1 
The Perl Web Site 
2.2 Step 1: Preprocessing the Data 
The data that most analysts are accustomed to working with is structured data.  Text data is 
unstructured data.  Unstructured data has the following characteristics: 
It has no specified format. 
.txt, .html, .xml, .pdf, .doc are among the possible formats for text data. 
It has variable length. 
One  record  might  contain  a  phrase  of  a  few  words,  a  few  sentences  or  an 
academic paper of many pages. 
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
It can have variable spelling. 
Misspellings, abbreviations, and singular versus plural forms of words are among 
the reasons for variable spelling . 
Punctuation and other nonalphanumeric characters may be in the data. 
Periods, question marks, dashes, equal signs, and quotation marks are among the 
characters that may be found. 
The contents are not predefined and do not have to adhere to a predefined set of values. 
Even when restricted to one discipline such as actuarial science, a paper can be on 
a  variety  of  topics  such  as  ratemaking,  reserving,  reinsurance,  enterprise  risk 
management, or data mining.  An accident description field may refer to the part 
injured, the injury, circumstances of the accident, etc.  
To make text data useful, unstructured text data is converted into structured data for further 
processing.  There are several steps involved in the preprocessing: 
Parse the data.  That is, extract the words from the data, typically discarding spaces and 
Eliminate articles and other words that convey little or no information. 
Replace words that are synonyms, and plural and other variants of words with a single 
Create the structured data, a table where each term in the text data becomes a variable 
with a numeric value for each record. 
2.3 Parsing the Text Data 
Parsing text involves identifying the spaces, punctuation, and other non alphanumeric characters 
found in text documents, and separating the words from these other characters. Most programming 
and statistical languages contain character procedures that can be used to parse the text data.  For 
instance, if the text data contains no punctuation and the words are separated by a space  the 
algorithm for parsing words from spaces is: 
Initialize an array to hold the words that are parsed. 
Search for the first space and record its position. 
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
Extract the string from the first position to the position before the next space.  This is the 
first word. 
Find the next space and record its position. 
Use the positions of the previous and subsequent space to extract the second word. 
Repeat until all words are parsed. 
In Perl a special text function helps one to quickly parse text data.  The function is the split 
function, which splits words from spaces and other unwanted characters.  The split function takes as 
its arguments a character string used to separate words (contained between slashes) and the text 
string to be parsed.   
For instance, the following code (saved in the program can be used to parse the survey 
response, “Ability of members to prove they are more than just number crunchers.” 
= “Ability of members to prove they are more than just number crunchers”; 
@words =split (/ /, $Response); 
When the print function is used (i.e., within a loop containing print  “$words
\n”;) the result is a 
printout of the word array with each entry on a different line as in Figure 2.2. 
A natural question to ask is, “What happens if there are  two spaces instead of one?”  The 
following code parses a text string with more than one space separating the words where the string 
expression “\s+” is used to denote one or more spaces. 
$Response = “Ability of members to  prove they are more than just number crunchers”; 
@words =split (/ [\s+]/, $Response); 
The notation “\s” denotes a single space and is the same as simply placing a space between the 
slashes in the split function.  However, the notation “\s+” denotes one or more spaces, and can 
thus be used where there are a variable number of spaces. In addition, the split parameters “\s+” 
have been enclosed in brackets
. The code was saved in the program “  
The expression “\s+” is referred known as ”regular expression.” Regular expressions can be used 
to 1) parse text containing more complicated structures such as multiple spaces and punctuation, 2) 
Note the use of quotation marks used when giving a string variable a value within a program 
$words is used to print an array element, rather than the entire array.  See sample program 
Without a bracket around the “\s+”, the code does not always work as expected. 
Text Mining Handbook 
Casualty Actuarial Society E-Forum, Spring 2010 
search for specific strings of text in a large database, and 3) replace certain strings with other strings 
(or the empty string).  Because regular expressions use special variables to specify character patterns, 
such as expressions that denote digits, letters, etc., we have included a section in Appendix A that 
contains a glossary defining the common variables. 
Figure 2.2 
Output of shown on DOS screen 
Regular expressions can be used to eliminate unwanted punctuation from text data. For instance, 
suppose you are parsing the expression
“A crisis that could affect our ability to ‘regulate’ ourselves.”  
This express contains quotes and a period that we want to remove. This can be accomplished by 
first  using  the  split  function  then  using  an  additional  regular  expression  to  retain  only  the 
alphanumeric characters, not punctuation. An example of this is supplied in the program  
In addition, the substitution function, s, can be used to find and replace unwanted text. For instance 
if the text is: 
$Response=”Desire/ability for participation from a wide spectrum of members.” 
Typically the substitution operator has the following form: s /string/replacement string/.  If we 
want to replace all periods with a space we would use s/.//g.  The g following the operator stands 
for ‘global’ and will replace all occurrences of the string.  Additional modifiers may be required, i.e., 
when the character removed is the “/”. We can remove the “/” with the following code which must 
use the escape symbol “\” before the “/”. 
Response=~ s/\///g; 
More complicated expressions are used to remove all unwanted punctuation, and examples are 
provided in the sample Perl programs and appendices
supplied with this paper.   
Many of the Perl programs referenced in this paper are included in Appendicies.  
Documents you may be interested
Documents you may be interested