WO2014208205A1 - 表形式データ処理プログラム、方法及び装置 - Google Patents

表形式データ処理プログラム、方法及び装置 Download PDF

Info

Publication number
WO2014208205A1
WO2014208205A1 PCT/JP2014/062498 JP2014062498W WO2014208205A1 WO 2014208205 A1 WO2014208205 A1 WO 2014208205A1 JP 2014062498 W JP2014062498 W JP 2014062498W WO 2014208205 A1 WO2014208205 A1 WO 2014208205A1
Authority
WO
WIPO (PCT)
Prior art keywords
item
tabular data
data
items
key
Prior art date
Application number
PCT/JP2014/062498
Other languages
English (en)
French (fr)
Inventor
祐二 新井
Original Assignee
前田建設工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2013134184A external-priority patent/JP5497948B1/ja
Priority claimed from JP2013134183A external-priority patent/JP5497947B1/ja
Priority claimed from JP2013212378A external-priority patent/JP6283190B2/ja
Application filed by 前田建設工業株式会社 filed Critical 前田建設工業株式会社
Priority to JP2015523912A priority Critical patent/JP6623754B2/ja
Publication of WO2014208205A1 publication Critical patent/WO2014208205A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Definitions

  • the tabular data processing apparatus further includes a dictionary registration unit that accepts registration of words having the same concept relationship or a higher concept and a lower concept relationship based on a user operation, and the aggregation unit is a key. Records in which the elements of the items are in the same concept relationship, or records in a higher concept and lower concept relationship may be aggregated. In this way, name identification can be performed based on a dictionary set by the user when collecting records.
  • the tabular data processing apparatus displays the designated key items in a line along a predetermined direction representing the order in the key designation unit, and changes the order of the key items according to a user's drag operation.
  • the output unit may generate the output table by sorting the records of the input table in which the value of the key item satisfies a predetermined condition by a plurality of keys according to the order of the key item. In this way, the user can easily specify the key item.
  • the tabular data processing apparatus provides an input table that is input tabular data for tabular data in which a plurality of records including a plurality of elements corresponding to a plurality of items are registered. Aggregate the included records and generate an output table that is tabular data to be output. Specifically, based on the input table, the item-specific data that extracts the elements associated with the item order and generates the item-specific data that is retained for each item in association with the record order in the tabular data A generation unit; and an output table generation unit that aggregates elements included in the item-specific data and generates an output table from the item-specific data after aggregation.
  • tabular data can be broken down into item-by-item data that is expressed in units for each item.
  • item-specific data can be combined according to the items to be output to the output table. That is, the item-specific data is suitable for performing complicated processing. As the aggregation process, for example, table combination and aggregation can be performed.
  • the tabular data processing apparatus further includes a vertical coupling unit that generates a union of the item-specific data of the plurality of tabular data based on the data representing the association of items between the plurality of tabular data,
  • the ordered set generation unit may generate a set of record orders using a union of item-specific data. In this way, it becomes possible to perform data operations on a plurality of tabular data.
  • FIG. 2 is a functional block diagram illustrating an example of the tabular data processing apparatus 1.
  • the tabular data processing apparatus 1 includes a data storage unit 101, a setting processing unit 102, a data division unit 103, a display control unit 104, a vertical coupling unit 105, a control group generation unit 106, A horizontal coupling unit 107, a totaling unit 108, and an output data generation unit 109 are included.
  • the data storage unit 101 stores, for example, tabular data to be processed in this embodiment, setting data indicating a processing request, tabular data generated as a processing result, and other data generated in the middle of processing. Hold.
  • tabular data processing apparatus 1 for example, fields (also referred to as “columns”, “items”, “elements”, or “attributes”) are separated by delimiters (also referred to as “delimiters”) such as commas, tabs, and spaces.
  • delimiters also referred to as “delimiters”
  • Text data in which records (also referred to as “lines”) are separated by line breaks is the processing target.
  • the CSV data transferred by the user is stored in advance in the data storage unit 101 of the tabular data processing apparatus 1.
  • the vertical joining unit 105 performs processing (also referred to as “vertical joining processing”) for integrating records included in a plurality of tabular data into one tabular data, for example.
  • the control group generation unit 106 performs processing for generating a control group that represents records to be aggregated as a set of row numbers (also referred to as “record numbers”).
  • the row number is, for example, a serial number assigned from the beginning for each row of CSV data, and the record can be uniquely specified in the tabular data by the row number.
  • the horizontal combining unit 107 performs processing (also referred to as “horizontal combining processing”) for combining a plurality of tabular data records, for example, in which key item values satisfy a predetermined condition.
  • FIG. 3 is an apparatus configuration diagram illustrating an example of a computer.
  • the tabular data processing apparatus 1 and the user terminal 2 are computers as shown in FIG.
  • a computer 1000 illustrated in FIG. 3 includes a CPU (Central Processing Unit) 1001, a main storage device 1002, an auxiliary storage device 1003, a communication IF (Interface) 1004, an input / output IF (Interface) 1005, a drive device 1006, and a communication bus 1007. ing.
  • the CPU 1001 performs processing according to the present embodiment by executing a program (also referred to as “software” or “application”).
  • the main storage device 1002 caches programs and data read by the CPU 1001 and develops a work area of the CPU.
  • the program executed in this embodiment is provided via a portable storage medium readable by the drive device 1006, a portable auxiliary storage device 1003 such as a flash memory, a communication IF 1004, and the like. It may be.
  • the CPU 1001 executes the program, the computer as described above is operated as the tabular data processing apparatus 1 shown in FIG. Further, the user terminal 2 requests processing from the tabular data processing apparatus 1 via an Internet browser executed by the CPU 1001 or displays a received processing result, for example.
  • FIG. 4 is a processing flow showing an example of a file reading process.
  • the setting processing unit 102 of the tabular data processing apparatus 1 receives an input of a CSV file (FIG. 4: step S1). Specifically, the setting processing unit 102 receives a CSV file from the user terminal 2 and stores it in the data storage unit 101. For example, a CSV file as shown in FIG. 5 is input.
  • the setting processing unit 102 receives input of an item name and a start line of a record (S2). Specifically, the user designates, via the user terminal 2, the line where the item name is registered for each CSV file and the start position of the line where the record is registered. On the other hand, the setting processing unit 102 causes the data storage unit 101 to store the line in which the item name is registered and the start position of the line in which the record is registered in association with the CSV file. In the example of FIG. 5A, the first line is the start position of the item name, and the second line is the start position of the record.
  • the data dividing unit 103 generates a list having each line of the CSV file as an element (S3). Specifically, the data dividing unit 103 reads, for example, one line at a time from the top of the CSV file and adds it to the list as a new element in order from the first line.
  • data as shown in the row list of the tabular data shown in FIG. 5B is generated.
  • each element of the list is separated by a solid line, and each record of CSV data is registered in each element.
  • FIG. 6 is a process flow illustrating an example of the vertical combination setting process.
  • a plurality of items included in one tabular data may be combined and handled as one item.
  • the setting processing unit 102 receives an input of association between a combination of a plurality of fields included in certain tabular data and a combination of one field or a plurality of fields included in other tabular data. For example, a combination of an item “last name” and an item “name” in a certain CSV file and an item “name” in another CSV file is input.
  • a corresponding item it is associated in this step by the user's operation.
  • a plurality of tabular data does not necessarily have corresponding items.
  • the corresponding item has been described as being input by the user. However, for example, the same item name included in different tabular data may be presented in association with each other so that the user can appropriately modify the item name. .
  • the data division unit 103 acquires one row list of the tabular data to be processed (FIG. 8: S21).
  • the data dividing unit 103 reads, for example, one row list of CSV files to be combined from the data storage unit 101.
  • the data division unit 103 counts the number of item names that are registered in the item name row (the first row in the example of FIG. 5B) separated by commas from the row list (S22). For the item name and the start line of the record, the information specified in S2 of FIG. 4 is read from the data storage unit 101 and used. In this step, the data dividing unit 103 obtains the number of columns (item names) included in the table format data to be processed.
  • a list that holds the value of each record (row) as an element in order from the first row is generated.
  • FIG. 10A shows six item-specific lists corresponding to the item names “No.”, “ID”, “L_Name”, “F_Name”, “Sex”, “Station”, and “Expense”. .
  • values are stored as elements in an order corresponding to the order of records in tabular data.
  • FIG. 11 is a processing flow illustrating an example of the vertical joining process.
  • the vertical joining unit 105 identifies one tabular data to be joined based on the setting data for vertical joining (FIG. 11: S31). Further, the vertical coupling unit 105 generates and initializes output item-specific lists for the number of items to be output based on the vertical coupling setting data (S32). For example, the vertical combining unit 105 reads the setting data shown in FIG. 7B and generates an item-specific list for output by the number of elements. The creation and initialization of the itemized list is the same processing as S23 of FIG.
  • an item list for output as shown in FIG. 12A is generated from the item list shown in FIG. 10A.
  • the elements “L_Name” and “F_Name” of the item-by-item list to be combined are combined with “Name” of the item-by-item list, separated by spaces, based on the setting data of the vertical combination. It is registered.
  • “Office” that does not exist in the combined itemized list is generated as the itemized list for output. In the “Office” itemized list, “empty” is registered as many as the number of records.
  • an output item-specific list as shown in FIG. 12A is generated for the tabular data to be combined.
  • an item list for output as shown in FIG. 12B is generated from the item list shown in FIG. 10B.
  • the combination of the items “L_Name” and “F_Name” illustrated in FIG. 10A and the item “Name” illustrated in FIG. It is aggregated into two items "Name”.
  • the output data generation unit 109 reads the combined output item list and generates an output line-by-line list (FIG. 13: S41). For example, first, a list by line for registering the value of each record as an element is generated and initialized by the number of records. Next, the output item-by-item list is read out, and each element is registered as a new element in the line-by-line list corresponding to the record order (that is, the line number). Such a process is performed for all the item-specific lists for output to generate a line-by-line list. For example, a line-by-line list as shown in FIG. 14A is generated from the item-by-item list shown in FIG. 12C. In the example of FIG. 14A, each element is surrounded by a solid line, and elements adjacent in the horizontal direction represent a list by line.
  • the output data generation unit 109 generates a line list of the tabular data to be output using the generated line-by-line list for output (S42).
  • the element of the line list to be generated is a value obtained by adding a delimiter between elements included in the line-by-line list for output and connecting them to one line.
  • the output data generation unit 109 adds a comma as a delimiter between each element. For example, a line list as shown in FIG. 14B is generated from the line-by-line list as shown in FIG. 14A.
  • the output data generation unit 109 generates tabular data using the generated row list (S43).
  • the tabular data generated in this step is text data in which fields are separated by a separator such as a comma and records are separated by a line feed.
  • the output data generation unit 109 combines each element of the line list generated in S42 as one line and combines them into one file.
  • a CSV file as shown in FIG. 14C is generated from the row list shown in FIG. 14B.
  • a file that can be read by existing spreadsheet software may be generated.
  • the vertical join setting process As described above, according to the file reading process, the vertical join setting process, the item-specific list generation process, and the vertical join process, it is possible to generate a union of tabular data with different data items. Further, for example, when the user specifies the association of items in advance, the associated items can be aligned (that is, aggregated) in the same column in the combined tabular data. Such processing can be efficiently processed by using item-specific data generated in the present embodiment.
  • FIG. 15 is a process flow showing an example of the horizontal join setting process.
  • processing for integrating a plurality of records into one record is performed using the tabular data after the vertical join described above. Therefore, for example, it is assumed that the setting data for the vertical coupling as illustrated in FIG. 7A is stored in the data storage unit 101 in advance.
  • Fig. 16 shows an example of the screen.
  • the screen in FIG. 16 includes an item list display area 2001 for displaying a list of items, a key item display area 2002 for displaying a list of designated key items, and an overlap for selecting a process of duplicate values. It includes a value processing selection area 2003 and a delimiter selection area 2004 for selecting a delimiter when a value is combined and displayed in the same field.
  • the item list display area 2001 a list of items of tabular data after vertical combination is displayed in a panel form for each item.
  • a condition for collecting records is set for the selected key item. That is, for example, a condition for performing name identification such as “complete match”, “forward match”, “backward match”, or “intermediate match” is set. Further, it may be possible to specify whether or not to perform data cleansing (standardization) for the key item.
  • FIG. 17 shows an example of a screen for setting key items.
  • the screen of FIG. 17 includes an item name of a key item, an option 3001 for “name identification determination”, an option 3002 for determining whether to perform “data cleansing processing”, and a “register” button 3003 for registering settings. It is displayed. For example, when a panel displayed in the key item list of FIG. 16 is clicked, a key item setting screen shown by the panel as shown in FIG. 17 is displayed.
  • name identification refers to a process of collecting records relating to the same entity included in tabular data.
  • records in which at least a part of the key item values match are aggregated.
  • data cleansing process is a process that standardizes the description format of the key item value. For example, a value indicating a telephone number may be registered in different description formats such as “01-2345-6789”, “01 (2345) 6789”, “0123456789”, and the like. By standardizing such values, more accurate name identification can be performed. In addition to the phone numbers illustrated, postal codes, dates, corporate names, numerical values (with or without digit separators, units, etc.), variant names, addresses, etc. are used to absorb differences in the description format. it can. Existing techniques can be applied to the data cleansing process.
  • the setting processing unit 102 determines whether the input of the key item is completed (S54). For example, when the “data output” button in FIG. 18 is pressed by a user operation, the setting processing unit 102 determines that the input of the key item is completed. If the input has not ended (S54: NO), for example, the process returns to the process of S52, and the setting processing unit 102 further accepts designation of a key item. On the other hand, when the input is completed (S54: YES), the setting processing unit 102 stores the setting in the data storage unit 101 and ends the horizontal coupling setting process (S55). In this step, “key item” and “name identification condition” are set as the setting data for horizontal coupling. Furthermore, “necessity of data cleansing processing”, “processing of duplicate values”, “type of delimiter”, and the like may be set.
  • FIG. 19 is a processing flow showing an example of the aggregation setting process.
  • the record values are tabulated using the tabular data after the vertical combination. Accordingly, it is assumed that the setting data for vertical coupling as shown in FIG. 7A is stored in the data storage unit 101 in advance.
  • the display control unit 104 generates a list of output items and transmits it to the user terminal 2, and displays the list of output items on the display device of the user terminal 2 (FIG. 19: S61).
  • the processing in this step is the same as S51 in FIG.
  • FIG. 21 is an example of a screen for setting key items.
  • an item name 5001 of a key item and an option 5002 of “Key Item Counting Method” are displayed.
  • a panel displayed in the key item list of FIG. 20 is clicked, a key item setting screen shown by the panel as shown in FIG. 21 is displayed.
  • the setting processing unit 102 updates the display of the key item display area (S63). This step is the same as S53 in FIG. 15, and the key item panel is changed to a predetermined display mode indicating that the designation of the condition has been completed. For example, when the specification of the condition for the key item shown in FIG. 20 is completed, the color of the key item panel is changed as shown in FIG. In FIGS. 20 and 22, colors are also represented by hatching patterns for convenience. A plurality of key items may be specified. The process for receiving a plurality of key items is the same as S54 (FIG. 15).
  • multiple items may be specified.
  • panels are added from top to bottom in the specified order.
  • the direction in which the panel is added is not limited from top to bottom, and may be another predetermined direction.
  • the order of the panels in the total item display area 4004 may be changed by dragging the user.
  • the aggregation process is performed based on the order of the aggregation items. Therefore, the aggregation processing can be performed using the result of the upper aggregation item in the lower aggregation item.
  • the item aggregation method is set for the aggregation item.
  • “character combination” that generates a character string in which values are combined with a delimiter
  • “frequency count” such as “frequency” that counts the number of occurrences of values, or “total”, “average”, “median”, “ “Numeric value summarization (summary statistics)” such as “mode”, “maximum value”, “minimum value”, “variance”, “standard deviation”, etc. is selected by the user.
  • FIG. 24 is an example of a screen for setting the aggregation items.
  • an item name 6001 of the total item and an option 6002 of “item total method” are displayed.
  • a panel displayed in the total item display area of FIG. 23 is clicked, a key item setting screen indicated by the panel as shown in FIG. 24 is displayed.
  • the setting processing unit 102 updates the display of the total item display area when the setting of the total item is completed (S65). This step is the same as S63, and the aggregate item panel is changed to a predetermined display mode indicating that the designation of the condition has been completed. For example, when the specification of the condition is completed for the key item shown in FIG. 23, the color of the tab of the total item is changed as shown in FIG. In FIG. 23 and FIG. 25, colors are represented by hatching patterns for convenience. You may make it accept the designation
  • the control group of the present embodiment represents records (rows) in which key item values satisfy a predetermined condition as a set of row numbers.
  • a set of row numbers of records whose key item values completely match or a set of row numbers of records whose key item values described in the date format belong within a predetermined period is generated.
  • the tabular data processing apparatus 1 aggregates records using a control group in a horizontal join process or a tabulation process to be described later.
  • FIGS. 26 and 27 are process flows showing an example of the control group generation process.
  • the control group generation unit 106 reads the setting data for horizontal coupling or the setting data for aggregation processing from the data storage unit 101, and acquires one item list for each key item (FIG. 26: S71). For example, in the tabular data shown in FIG. 14C, when “Name” is specified as the key item, the third item from the left (item name: Name) in the item-by-item list shown in FIG. 12C. A list is obtained.
  • control group generation unit 106 generates a map in the Key-Value format that holds the values and the list of line numbers in association with each other (S72).
  • the value of the key item is registered, and in Value, a list holding row numbers as elements is registered.
  • the control group generation processing unit 106 performs a cleansing process (S73).
  • This step is performed, for example, when the setting for performing the cleansing process is specified in the setting data for the horizontal coupling or the setting data for the aggregation process.
  • the phone number, the postal code, the date, the corporate name, the numerical value (the presence or absence of a separator, the presence or absence of a unit, etc.), the variant of the name, the address, etc. are changed and unified. This improves the accuracy of the process of collecting records, such as name identification.
  • control group generation unit 106 registers the row number of the element in the list in association with the read element value (S76). ).
  • the control group generation unit 106 adds the element number to the list of line numbers associated with the matching value (ie, the set). A line number is added (S77).
  • control group generation unit 106 determines whether there is an unprocessed key item (S79). If there is an unprocessed key item (S79: YES), the process returns to S71 of FIG. On the other hand, when there is no unprocessed key item (S79: NO), the control group generation unit 106 determines whether there is one type of control group (S80). In addition, by the process so far, the control group is produced
  • a set of row numbers is sorted in the control group generation process. Assume that a set of row numbers as shown in FIG. 29A is generated from tabular data having two key items “English” and “Numeric”. Here, a set of line numbers whose “alphabet” values are “A”, “B”, and “C” are sorted in ascending order of “alphabetical characters”. Further, when the set of row numbers is sorted in ascending order of the “number” value, it is assumed that a set of row numbers as shown in FIG. 29B is generated. In FIG. 29B, a set of row numbers whose “number” values are “0” and “1” is generated.
  • FIG. 29C When such data is sorted by a plurality of keys in the order of “alphabetic characters” and “numbers” in the key items, a product set as shown in FIG. 29C is generated.
  • a set of line numbers having the values “alphabet” and “number” “A” and “1”, “B” and “1”, “C” and “0” is generated. Yes.
  • a product set as shown in FIG. 29D is generated. In the example of FIG.
  • one control group is finally generated and stored in the data storage unit 101.
  • the records can be aggregated for each set of records specified by the plurality of key items.
  • the horizontal combining unit 107 or the totaling unit 108 acquires one item-by-item list to be processed (S92).
  • one item-specific list is acquired from the item-specific list after the vertical combination as shown in FIG. 12C.
  • one item is obtained from the item-specific list corresponding to the key item and the aggregation item.
  • the horizontal combining unit 107 or the totaling unit 108 acquires one set from the control group (S93).
  • one set of row numbers is acquired from the control group as shown in FIG. 28A.
  • the horizontal combining unit 107 or the totaling unit 108 determines whether to combine values (S94).
  • “total”, “average”, “median”, “mode”, “maximum value”, “minimum value”, “variance”, “standard deviation”, etc. are specified as the aggregation method of items. If so, it is determined not to combine the values.
  • the records to be aggregated are specified using the control group.
  • the generation of the control group is performed by determining whether or not each of the key item values belongs to the already generated set (any of the control group sets). Since each key item value does not need to be compared with each other value of the key item, the control group can be generated relatively quickly. Further, after the control group is generated, it is not necessary to maintain the association between each set and the value of the record belonging to the set. That is, each set of control groups holds only row numbers. The memory capacity required to store such a control group is relatively small.
  • FIG. 31 is a diagram illustrating an example of a new item setting screen. For example, in FIG. 23, when a “new” panel is added to the total item display area and the added panel is clicked, a screen as shown in FIG. 31 is displayed on the display unit of the user terminal 2. .
  • FIG. 32 is a diagram illustrating an example of a screen for inputting a calculation formula.
  • FIG. 34 is a process flow showing an example of a new item generation process.
  • the totaling unit 108 reads the setting data for the totaling process and acquires one new item (FIG. 34: S101). Also, the totaling unit 108 determines whether the new item totaling process is a conditional expression or a calculation formula (S102). When it is a conditional expression or a calculation expression (S102: YES), the totaling unit 108 acquires one set of control groups (S103).
  • the counting unit 108 determines the conditional expression or calculates the calculation expression (S104). Further, the totaling unit 108 registers the determination result of the conditional expression or the calculation result of the calculation expression as a new element in the output item-specific list (S105). Then, the totaling unit 108 determines whether an unprocessed set exists in the control group (S106), and when an unprocessed set exists (S106: YES), the process returns to S103. On the other hand, when there is no unprocessed set (S106: NO), the process proceeds to S111.
  • the counting unit 108 acquires one set of control groups (S107). Then, the counting unit 108 counts the number of values included in the control group set (S108). Then, the totaling unit 108 registers it as a new element in the item list for output (S109).
  • an item-by-item list as shown in FIG. 35B is generated.
  • two identical values are held in the elements on the first and second rows of the “Name” item-specific list.
  • Items other than key items may be registered by combining a plurality of values with one element in the combined itemized list, or may be registered without duplication. Further, a numerical value indicating the frequency of occurrence of the value may be registered after removing the overlap.
  • an itemized list is generated for key items and aggregation items. And it totals based on the set totaling method for every set of control groups.
  • tabular data is decomposed into itemized lists and handled by itemized list generation processing.
  • a pattern for performing output processing from vertical join processing and a pattern for performing output processing from horizontal join / aggregation processing using tabular data after vertical join have been described.
  • the pattern of processing according to the present embodiment is not limited to these. For example, it is possible to perform processing in the order of vertical join processing, horizontal join processing, and tabulation processing using a list by item, and further perform vertical join processing using a plurality of tabular data generated in this way. .
  • the configuration in which the tabular data processing apparatus 1 provides a service to each user terminal 2 via the network 3 has been described, but the present invention is not limited to such an aspect.
  • the user terminal 2 that has installed the tabular data processing program may execute the processing according to the present embodiment without connecting to the network 3.
  • the tabular data processing apparatus accepts a data operation instruction from the user via the input I / F.
  • the tabular data processing apparatus outputs the result to an output device such as a monitor via the output I / F.
  • processing flow shown in the present embodiment is an example, and the processing order may be changed or the processing may be performed in parallel as long as the processing result does not change.
  • the layout and the like of the screen examples can be changed as appropriate.
  • the apparatus processes so-called tabular data.
  • the tabular data includes, for example, elements (also called “fields”, “columns”, “items”, “attributes”, or “values”) by delimiters (ie, “delimiters”) such as commas, tabs, and spaces.
  • delimiters ie, “delimiters”
  • a predetermined number of rows from the top of the tabular data are handled as title rows. That is, elements included in a predetermined number of rows from the top are handled as field names (also referred to as “column names”, “item names”, “attribute names”, etc.).
  • an empty line it may be automatically deleted.
  • other lines are handled as data records.
  • an element (also referred to as “value”) included in the data record is set as a target for the combination process, the aggregation process, and the like.
  • the program according to the present embodiment holds elements included in tabular data in an array (list) and performs various processes described later. Further, the tabular data according to the present embodiment may further hold an array as a single element. That is, a configuration is adopted in which a plurality of values can be held in one field of tabular data. In this embodiment, elements are basically handled as character strings. However, in the aggregation process or the like, it may be determined whether the element is a numerical value, a date and the like, and an error message may be output when an element that is not in a predetermined format is detected.
  • FIG. 36 is a functional block diagram illustrating an example of a tabular data processing apparatus that processes tabular data.
  • the tabular data processing apparatus 4 includes a data storage unit 401, an input / output unit 402, a control unit 403, a vertical coupling unit 404, a horizontal coupling unit 405, a totaling unit 406, and a grouping unit. 407, a search unit 408, an external cooperation unit 409, and a batch processing unit 410.
  • the input / output unit 402 reads out the tabular data stored in the data storage unit 401 based on the user's designation, and writes out the tabular data generated as a processing result in the data storage unit 401.
  • the control unit 403 uses one or more processes (also referred to as processes) such as a vertical coupling process, a horizontal coupling process, a totaling process, a grouping process, a search process, and an external linkage process, and sequentially processes the processes. Define a job to be executed. Based on the job definition, the vertical coupling unit 404, the horizontal coupling unit 405, the totaling unit 406, the grouping unit 407, the search unit 408, the external cooperation unit 409, and the like execute processing.
  • the vertical joining unit 404 performs processing (referred to as “vertical joining processing”) for integrating records included in one or more tabular data into one tabular data.
  • a setting for executing the vertical combining process is received by a user operation.
  • the horizontal combining unit 405 performs processing (referred to as “horizontal combining processing”) that combines a plurality of tabular data records, for example, in which key item values satisfy a predetermined condition.
  • a setting for executing the horizontal joining process is received by a user operation.
  • the aggregation unit 406 performs a process of aggregating values as numerical values or integrating values as character strings into one field based on the setting.
  • the grouping unit 407 divides values included in the tabular data into predetermined groups and performs cross tabulation. In addition, a process of dividing the tabular data in a cross tabulated state according to a condition (ungrouping) is performed.
  • the horizontal coupling unit 405, the totaling unit 406, and the grouping unit 407 are collectively referred to as an aggregation unit in the present invention.
  • the auxiliary storage device 1003 stores programs executed by the CPU 1001, setting information used in the present embodiment, and the like.
  • the auxiliary storage device 1003 is an HDD (Hard-disk Drive), an SSD (Solid State Drive), a flash memory, or the like.
  • the main storage device 1002 and the auxiliary storage device 1003 function as the data storage unit 401 of the tabular data processing device 4.
  • the communication IF 1004 transmits / receives data to / from other computers.
  • the communication IF 1004 is specifically a wired or wireless network card or the like.
  • the tabular data processing device 4 may be connected to a network via a communication IF 1004.
  • the input / output IF 1005 is connected to the input / output device and accepts an operation from the user or presents information to the user.
  • the input / output device is a keyboard, a mouse, a display, a touch panel, or the like.
  • the drive device 1006 reads data recorded on a storage medium such as a magnetic disk, a magneto-optical disk, and an optical disk, and writes data to the storage medium.
  • the above components are connected by a communication bus 1007. A plurality of these components may be provided, or some of the components (for example, communication IF 1004, drive device 1006, etc.) may not be provided.
  • the input / output device may be integrated with the computer.
  • the program executed in this embodiment is provided via a portable storage medium readable by the drive device 1006, a portable auxiliary storage device 1003 such as a flash memory, a communication IF 1004, and the like. It may be. Then, when the CPU 1001 executes the program, the computer shown in FIG. 3 is operated as the tabular data processing apparatus 4 shown in FIG.
  • FIG. 37 is a schematic diagram of a job according to the present embodiment.
  • the tabular data processing device 4 can extract data of specified conditions from a plurality of tabular data having different formats (that is, the structure of tabular data such as columns and column names), and can combine them vertically and horizontally. it can.
  • data cleansing can be performed to increase the accuracy of the results.
  • aggregation and search can be performed, and these processing can be executed in cooperation with a set schedule. Note that it is preferable that the tabular data to be created is output as a new file and the input tabular data is not updated, for example, when the user repeats the process with trial and error.
  • These function settings can be saved in, for example, an XML format.
  • the vertical combining unit 404 combines (stacks) the records included in the input data in the vertical direction. Furthermore, in FIG. 40, predetermined columns are associated with each other. Further, the column “name” in FIG. 38 is associated with the combination of the column “lastName” and the column “FirstName” in FIG.
  • the input tabular data may be one instead of plural. In this case, the column name of the tabular data to be output can be changed, but the elements of the data record are not different from the input data. Note that the vertical coupling process is executed by the vertical coupling unit 404.
  • FIG. 41 is a diagram showing an example of a setting screen (vertical join column edit screen) for vertical join.
  • the table in FIG. 41 includes a column of “CSV file name” and columns (“number”, “date”, “name”%) Indicating correspondence between columns included in each CSV file.
  • the column names (“number”, “date”, “name”%) Displayed in the upper part of FIG. 41 represent the column names of the output file. That is, the CSV file columns displayed in the same column in FIG. 41 are associated with each other in the output file.
  • the column name of the output file can be changed by the user. Further, the column order shown in FIG. 41 represents the column order in the output file.
  • a combination of a plurality of columns in one CSV file can be associated with one column in the other CSV file. Further, there may be a column that is not associated with any column of the other CSV file, and at least a part of the column of the input file may not be output to the output file. It is also possible to associate three or more CSV files.
  • a vertically connected base file selection screen as shown in FIG. 42 is displayed.
  • the name of the read CSV file is displayed in the column “CSV file name”.
  • the file size of the CSV file is displayed.
  • the update date of the CSV file is displayed.
  • the check box in the “Select” column the user checks a CSV file that is a reference for vertical connection.
  • the attribute name of the output data is set according to a predetermined priority using the attribute name of the CSV file as a reference.
  • the field color may be changed according to the setting state. For example, light purple is the same as the new attribute name, and indicates a state where the attribute is not individually specified on the display attribute extraction setting screen.
  • the cream color indicates a state where attributes are individually specified on the display attribute extraction setting screen.
  • orange indicates a state where the CSV file selection is canceled on the display attribute extraction setting screen.
  • White indicates a state in which no attribute name that matches the new attribute name exists in the CSV file on the display attribute extraction setting screen.
  • a display attribute extraction setting screen as shown in FIG. 43 is displayed.
  • 43 is a text box for “new attribute name”, a column for “CSV file name”, a check box for “attribute name of CSV file”, a line of “contents of CSV file”, and “setting” for saving the setting. Includes a button.
  • the attribute name is displayed in the “new attribute name” text box.
  • the new attribute name can be modified by the user.
  • the CSV file name is displayed in the “CSV file name” column.
  • the check box of “CSV file attribute name” is checked by the user when individually associating attributes.
  • FIG. 44 is an example of tabular data (input data) to be processed by horizontal join.
  • FIG. 44 shows a result of vertical join processing using tabular data as shown in FIGS. 45 and 46. 44, the items “Company Name” in FIG. 45 and “Company” in FIG. 46 are aligned in one column. Other items are not associated with each other, and some fields in FIG. 44 are empty.
  • a plurality of records having the same key attribute value are grouped into one record (also referred to as “name identification”), and for attributes other than the key, the values included in the plurality of records are delimited into one field or You may make it enumerate with a line break.
  • the duplication may be removed or the duplication may not be removed.
  • the field of items that do not exist in other tabular data may be complemented (also referred to as “automatic complement”) using tabular data corresponding to so-called master data.
  • FIG. 47 is obtained.
  • the “number of employees” column not shown in FIG. 46 is supplemented with the elements of FIG. 45, which is so-called master data, based on records having the same key attribute value.
  • the attribute that is the complementing source is arranged on the left side, and the priority record (master data) on the tabular data is determined. Further, when the master data is uniquely specified by the key attribute, it is possible to perform complementation from the contents of the priority record. Finally, the priority record is deleted.
  • the key attribute of the horizontal combination may be standardized (data cleansing). For example, when the corporation name included in the value is “corporation”, “(share)”, “f)”, etc., they can be treated as the same. In addition to “complete match”, “forward match”, “backward match”, “intermediate match”, and the like may be determined to be the same.
  • the details of the key attribute designation are performed via a screen as shown in FIG. 49 (also called a horizontal join key setting screen).
  • the screen of FIG. 49 includes an area for designating “name identification determination” and “data cleansing processing”.
  • the “name identification determination” is selected by clicking one of “complete match”, “intermediate match”, “forward match”, or “backward match”.
  • the user checks the check box of “Perform standardization (data cleansing)” and selects the type of data cleansing from the pull-down menu. In the example of FIG. 49, “corporate name” is selected.
  • the user “combines in one line and excludes duplication”, “combines in one line and does not remove duplication”, “frequency without consolidating in one line” Click “Sort by” or “Automatically complete without consolidating into one line”.
  • a symbol for separating a plurality of elements grouped in one field for attributes other than the key attribute is selected. Options include “comma”, “slash”, “line feed” and “space”. Items such as those described with reference to FIGS. 48 and 49 are stored in the data storage unit 401 as setting information for the horizontal joining process. 48 and 49, the panel color may represent the setting state.
  • FIG. 59 shows an output example in the case of frequency sorting without combining into one line.
  • Standardization can be performed in horizontal combination, tabulation and grouping described later. Standardization performs name identification for shaking notations. For example, this is designated when “complete match” is selected for “name identification”.
  • any of telephone number, postal code, date, corporation name, numerical value, Japanese sentence analysis, English sentence analysis, name, address, and user dictionary can be selected.
  • the phone number is treated as the same difference in notation such as “03-1234-5678”, “03 (1234) 5678”, “0312345678”.
  • the zip code treats differences in notation such as “ ⁇ 273-0039”, “273-0039”, and “2730039” as being the same.
  • the dates are: GGGGyyMMdd (Heisei 250110, H250110), yyMMdd (130110), yyyyMMdd (20130110), GGGGyy year MM month dd (January 10, 2013, January 25, 2013), yyyy year MM month dd (January 10, 2013), GGGGyy / MM / dd (2013/01/10, H25 / 01/10), yy / MM / dd (13/01/10), yyyy / MM / dd (2013 / 01 / 10,2013 / 1/10 9:06:39), yy-MM-dd (13-01-10), GGGGyy-MM-dd (2013-01-01, H25-01-10), yyyy -MM-dd (2013-01-10), yy month MM month dd date (January 10, 2013) Differences are treated as the same.
  • the company name is: Co., Ltd., mark with model-dependent characters and corporations, (Yes), mark with model-dependent characters and limited companies, (medicine) and medical corporations, (corporation) and incorporated associations, (goods) and foundations. , (Joint) and joint-stock company, (sect) and religious corporation, (study) and school corporation, (money) and mutual company, (stock) and joint-stock company, (name) and joint-stock company, (Germany) and independent administrative corporation , (Special) and specially authorized corporations, (fortune) and welfare corporations, and general, public interest, council and presence of associations are treated as the same.
  • the numerical value treats the difference in notation such as ⁇ 12,300, 12300, 12,300, ten thousand one hundred and one hundred and thirty thousand three hundred as the same.
  • sentences such as “ ⁇ Taro is”, “ ⁇ Taro”, and “That ⁇ Taro” are analyzed to extract names and the like.
  • the differences in the titles of English sentences such as SankakuTaro, Sankaku Taro, and sankaku taro are treated as the same. Names are treated as the same for different characters such as Taro Saito, Taro Saito, Taro Saito, and Taro Saito.
  • the user dictionary is used by setting in advance the notation fluctuation and synonyms in the dictionary file defined by the user. By setting the fluctuations and synonyms in advance, ambiguous values can be normalized and handled.
  • a dictionary (collective character replacement dictionary) for replacing characters at once can also be selected.
  • the user dictionary is a dictionary that performs name identification using synonyms and relationship (parent-child relationship).
  • the regular expression user dictionary is a dictionary for performing name identification using regular expressions.
  • the replacement user dictionary is a dictionary for collectively performing character replacement based on registered contents.
  • a dictionary associated with name identification is applied with a priority such as rank 1: synonymous with synonym and rank 2: regular expression.
  • FIG. 61 shows an example of the relationship of words and phrases that illustrate the user dictionary of FIG. Note that the alphabet enclosed in a circle in FIG. 61 represents one word.
  • “C”, “D”, and “P” are synonyms, “C” is a parent “A”, and “P” is a relationship (parent-child relationship) with a parent “O”.
  • a relationship and a synonym shall cooperate automatically.
  • “K” directly defines only the parent-child relationship with “I”.
  • the process follows "K"-"I"-"H"-"G"-"Q"-"O" The most significant word “O” can be acquired.
  • the synonyms “C”, “D”, and “P” are rearranged in natural order, Tie up.
  • the natural order is, for example, alphabetical order for characters and small value order for numerical values.
  • the user dictionary as shown in FIG. 60 it may be associated with a phrase defined at the leftmost among synonyms.
  • the phrase “D” in FIG. 61 is associated with the synonym “C”.
  • the phrase “C” is associated with the parent “A”.
  • each word / phrase is associated with the highest-level parent or a synonym based on a predetermined priority, or all children connected at a lower level and their synonyms.
  • name identification and aggregation as described later can be performed for each department.
  • name identification and aggregation can be performed for each component of the product. Comparing the results of such aggregation results for old and new products can also check the compatibility of parts of old and new products.
  • a synonym means the relationship of the same concept (same concept). The relationship means the relationship between the superordinate concept and the subordinate concept.
  • name identification with a high degree of freedom can be performed based on a dictionary set by the user.
  • FIG. 62 shows an input example of a regular expression user dictionary.
  • “.?” Indicates the presence of 0 or 1 character. Therefore, “parts”, “parts”, “parts”, and the like correspond to “parts”. “Parts” does not apply.
  • “. *” Indicates the presence of zero or more characters. Therefore, “. * Maeda. *” Corresponds to “Amae Maeda”, “Maeda”, “Maeda?”, And the like. It is assumed that general regular expressions can be used, and explanations of expressions other than the above are omitted.
  • FIG. 63 shows an input example of a replacement user dictionary.
  • words are input separated by “/”.
  • the word on the left side of “/” represents the word / phrase after replacement, and the word / phrase on the right side of “/” represents the word / phrase to be replaced.
  • a plurality of substituent phrases can be input with “,”.
  • the phrase “JAPAN” is replaced with “JPXPP”.
  • Aggregation is a function that outputs a group of values as a summary statistic value based on a predetermined condition including a key attribute with one tabular data as a processing target. After the aggregation process, the aggregation attribute is aggregated (that is, aggregated) for each record that satisfies the condition set by the key attribute value. It is also possible to perform four arithmetic operations on the obtained value or the original value group and further output a calculation result based on a predetermined condition. Data can also be processed using functions. Further, in addition to the aggregation of numerical values, the data corresponding to the condition can be counted (counted), or the data corresponding to the condition can be marked.
  • FIG. 65 to FIG. 71 are diagrams showing an example of a screen for setting the aggregation process.
  • 65 includes a region for setting “attribute list”, “new attribute”, “key attribute”, and “total attribute”.
  • the “attribute list” area a list of attributes included in the input data is displayed.
  • the “new attribute” area a “new” panel to be dragged by the user when setting an item not included in the input data is displayed.
  • the “key attribute” area is an area for a user to drag and drop a panel representing an attribute used as a key attribute, and a set key attribute is displayed. Note that the panels set in the key attribute may be rearranged.
  • the “total attribute” area is an area for the user to drag and drop a panel representing an attribute to be totaled, and the set total attribute is displayed.
  • the user can add a new attribute to the total attribute by dragging and dropping the “new” panel to the “total attribute” area.
  • the new attributes are those added as new attributes such as the number of records, the result of arithmetic operation, the result of condition determination, and the result of predetermined function processing. It is also possible to define a new attribute later (below the total attribute area) using the new attribute set earlier (above the total attribute area).
  • FIG. 66 is an example of a screen (aggregation key setting screen) for setting key attributes.
  • the screen of FIG. 66 includes an area for selecting a tabulation method for the key attribute selected by the user.
  • As the totaling method there are choices of “complete match”, “user dictionary”, “by year”, “by month”, “by day”, “by week / year”, “by week / month” and “by day of the week”. Is displayed, and the user can select one by clicking. Note that “by year” to “by day of the week” are valid when the value is a date.
  • FIG. 67 is an example of a screen (total attribute setting screen) for setting the total attribute.
  • the screen of FIG. 67 includes an area for selecting a character aggregation type or a numerical aggregation type for the aggregation attribute selected by the user.
  • Types of character tabulation include “join” and “frequency”.
  • Combining is a function that outputs values separated by commas.
  • Frequency is a function that outputs the number of occurrences of a value in parentheses.
  • the types of numerical aggregation include “total”, “average”, “maximum”, “minimum”, “median”, “mode”, “variance”, and “standard deviation”.
  • the total is a function for calculating a value obtained by adding all the numerical values.
  • the average is a function for calculating the arithmetic average of the total.
  • the maximum is a function for specifying the maximum value.
  • the minimum is a function for specifying the minimum value.
  • the median is a function that specifies a value located in the center when a finite number of data are arranged in order of size.
  • the mode value specifies the value that appears most frequently in the sample group.
  • sample variance is calculated.
  • standard deviation sample standard deviation is calculated. The user can select the type of aggregation by clicking on either of them.
  • a “new” panel can be registered in the aggregation attribute.
  • FIG. 68 shows an example of a screen (total addition attribute screen) for setting a new attribute as the total attribute. That is, the screen of FIG. 68 is displayed when setting a new attribute added to the aggregate attribute on the screen of FIG.
  • the screen in FIG. 68 includes an area for inputting a name of a new attribute and an area for selecting the type of the new attribute.
  • the user inputs a character string for the name of the new attribute. Then, the input character string is set as the attribute name of the output data.
  • the types of new attributes include “count”, “calculation”, “condition”, and “function processing” options. The count is a function for outputting the number of attributes specified on the key attribute screen.
  • the number of records included in the record group that satisfies the conditions set on the “aggregate key setting” screen in FIG. 66 is counted and set as the value of the new item.
  • the calculation is a function for outputting a calculation result, and details are set on a calculation screen described later.
  • the condition is a function for outputting a determination result of the set determination condition, and details are set on a condition screen described later.
  • the function processing is a function for outputting the set function processing result, and details are set on a function processing screen described later.
  • the color of the panel may represent the setting state. For example, light blue represents an unset state. Purple indicates a state that has been set on the horizontal combination key setting screen. Yellow indicates a state where no new attribute is set.
  • FIG. 69 is an example of a screen (calculation screen) for setting “calculation”.
  • the screen of FIG. 69 includes an area for displaying a list of aggregate attributes and a numeric keypad area for setting four arithmetic operations.
  • the user can define a calculation formula for calculating the value of the new attribute by combining them.
  • the aggregate attribute the aggregate screen aggregate attribute name is displayed.
  • the set attribute (purple panel) is displayed.
  • new attributes before the own panel are displayed and can be used for calculation.
  • a numerical value or operator for the calculation formula is selected as the value of the calculation formula.
  • Input is performed by selecting from the aggregate attribute panel or dragging and dropping from the numeric keypad area.
  • the value of the calculation formula is displayed in text in the confirmation calculation formula. If there is an error in the calculation formula, it may be highlighted in red.
  • FIG. 70 is an example of a screen (condition screen) for setting “condition”.
  • the screen in FIG. 70 displays an area for displaying a list of aggregate attributes, an area for setting a conditional expression, a value displayed for the new attribute when the condition is met, and a new attribute when the condition is not met. And an area for inputting a value to be displayed.
  • the user can set a conditional expression for determining whether or not any aggregate attribute satisfies a predetermined condition.
  • a plurality of conditional expressions can be connected by AND (logical product) or OR (logical sum).
  • the total attribute the total attribute name on the total screen is displayed.
  • the set attribute (purple panel) is displayed.
  • an attribute before the own panel is displayed.
  • the conditional expression at the time of aggregation is input.
  • a total attribute that is a condition is selected.
  • One classification condition is selected for the category.
  • “match”, “include”, “more than”, “less than”, “greater than”, “less than”, “do not match”, “do not include”, and “regular expression” can be selected.
  • “AND” button is pressed, a new AND conditional expression line is added.
  • the “OR” button is pressed, a new OR conditional expression line is added.
  • a value to be output to the row of values that match the conditional expression is selected from the input or the total attribute.
  • a value to be output to a row of values that do not match the conditional expression is input or selected from the aggregate attribute.
  • FIG. 71 is an example of a screen (function processing screen) for setting “function processing”.
  • the screen in FIG. 71 includes an area for displaying a list of “total attributes”, an area for designating “target attributes”, and an area for selecting “data processing function name”.
  • the user can drag and drop the aggregate attribute panel to the area for setting the target attribute.
  • an area for inputting an argument is displayed according to the selected data processing function name.
  • the total attribute the total attribute name on the total screen is displayed.
  • the set attribute (purple panel) is displayed.
  • the new attribute an attribute before the own panel is displayed.
  • an attribute for performing function processing is specified.
  • For the data processing function name a function classification is selected.
  • the items described with reference to FIGS. 65 to 71 are stored in the data storage unit 401 as setting information for the aggregation process.
  • “Alphabetic” is a function that extracts only alphabetic characters (A-Z and a-z).
  • Left is a function for acquiring a specified number of characters from the left end.
  • Lefta is a function that searches for a search character from the left end and acquires characters up to that character.
  • Leftb is a function that searches the left end or the search character and acquires the character up to that position.
  • “Length” is a function for acquiring the length of a character.
  • “Lower” is a function that changes an uppercase letter of a letter to a lowercase letter.
  • “Middle” is a function that acquires the specified position and number of characters from the left.
  • Multibytechar is a function that extracts only multibyte characters.
  • Numberer is a function that determines each character of a character string and extracts only a numerical value.
  • Reppeat is a function that repeatedly registers a specified character from a specified attribute value (numerical value), and “replace” is a function that replaces the specified character.
  • Replacedic is a function for replacing a specified character based on the contents of the replacement dictionary.
  • Light is a function for acquiring a specified character from the right end.
  • Lighta is a function that searches for a search character from the right end and acquires characters up to that character.
  • “Rightb” is a function that retrieves a search character from the right end and acquires characters up to that position.
  • “Substitute” is a function that replaces the position and the number of characters specified from the left.
  • “Normalizeaddress” is a function that normalizes an ambiguous address.
  • “Normalizecompany” is a function that normalizes the company name.
  • “Normalizedate” is a function that separates dates with a slash (/).
  • “NormalizedateISO” is a function that normalizes dates.
  • “Jnounphrase” is a function that extracts only common nouns from sentences.
  • “Normalizename” is a function that normalizes the name.
  • Normalizenumber is a function that normalizes numbers including Chinese numerals (including old Chinese characters).
  • Normalizepostcode is a function that normalizes the zip code.
  • Unicipalities is a function for obtaining a city name from an address.
  • Postaddress is a function for acquiring an address from a zip code.
  • Prefectures is a function for acquiring a prefecture name from an address.
  • the attribute name at the time of counting result output is “attribute name” + “_ (underbar)” + “attribute name of counting result” in the table below.
  • Grouping is a function for classifying and tabulating tabular data in any form. Specifically, it is a function for classifying and summing up records (so-called “cross tabulation”) based on elements in a predetermined column.
  • the grouping unit 407 performs aggregation based on the key attribute and grouping attribute set by the user.
  • a data cleansing function which will be described later, can be used as an element of a key column.
  • FIG. 72 is an example of input data for the grouping process.
  • FIG. 73 is an example of output data of the grouping process.
  • the “device name” and “serial number” are set as key attributes
  • the “data acquisition date” is set as a group attribute
  • the “number of output sheets” is set as a value.
  • Each record having the same attribute is grouped for each data acquisition date, and the value of the number of output sheets is totaled.
  • FIG. 74 is an example of a screen (grouping screen) for setting grouping processing.
  • FIG. 74 shows an area for displaying an “attribute list”, an area for setting key attributes, an area for setting group attributes, an area for setting values, and numerical aggregation. And an area for.
  • the attribute name is displayed in the attribute list.
  • a key attribute for grouping is specified. Panels can be rearranged. Further, after the setting, the display is two-staged, the attribute name is displayed in the upper part, and the contents of the grouping key setting screen and the data cleansing process are displayed in the lower part.
  • the items as described with reference to FIG. 74 are stored in the data storage unit 401 as setting information for the grouping process.
  • FIG. 72 Assume that the data shown in FIG. 72 is input data for group release processing.
  • FIG. 75 is an example of output data of the group release processing.
  • 72 when “data acquisition date” is set as a key attribute and “device name” and “serial number” are set as ungrouping attributes, grouping is canceled as shown in FIG. Divided into records whose values are attribute names.
  • FIG. 76 shows an example of a screen (grouping key setting screen) for setting the grouping cancellation processing.
  • FIG. 76 includes an area for displaying an “attribute list”, an area for setting a “key attribute”, and an area for setting an “ungrouping attribute”.
  • the attribute name is displayed in the attribute list.
  • the key attribute specify the key attribute for ungrouping. Panels can be rearranged.
  • the ungrouping attribute an attribute for ungrouping is specified. When all movement is specified, all the attribute list panels are moved to the ungroup attribute.
  • the attribute name when outputting the ungrouping result is the attribute name of the key attribute, “sub”, “value”.
  • the items described with reference to FIG. 76 are stored in the data storage unit 401 as setting information for the grouping cancellation process.
  • the search is a function for extracting records from a plurality of tabular data having different data formats and from combined tabular data based on a specified search condition. It is also possible to sort (rearrange) the extracted records.
  • the external linkage is a function for starting another program held by the tabular data processing apparatus.
  • the process can be taken over by another program that reads and uses data output by the process according to the present embodiment.
  • Command line options may be entered as startup options.
  • a waiting time (seconds) after activation may be designated.
  • the file division is a function for dividing the tabular data into a predetermined size. For example, by physically dividing the input tabular data, the size of the input data can be reduced, and the load on the computer when performing the processing according to the present embodiment can be reduced.
  • Saving and restoring of setting contents are processing for saving setting contents defining an execution order of one or more processes and settings for executing each process in an XML file, and processing for opening the saved file.
  • the above-described processing can be performed again on tabular data having the same item configuration based on information stored in the XML file.
  • the XML file is also called re-execution information. It is also possible to open the saved file and execute the defined process, and to modify the definition.
  • a series of processes stored in an XML file is also called a job.
  • FIG. 79 shows an example of the contents of an XML file.
  • a ⁇ Set> tag is a data set item, and an input CSV file is described in the tag.
  • the ⁇ Process> tag is a process set item, and the process to be executed is described in the tag. Specifically, search, vertical join, horizontal join, and aggregation are set. In addition, a data declaration part may be included.
  • an example of the element name and attribute name used in the XML file and the contents thereof including tags not used in FIG. 79 will be described.
  • ⁇ Search> tag is a search item, and the search condition in the file is described in the tag.
  • the ⁇ OneColumnJoin> tag is a vertical combination item, and settings related to vertical combination are described in the tag.
  • the ⁇ FullColumnJoin> tag is a horizontal join item, and settings related to horizontal join are described in the tag.
  • the ⁇ Summarization> tag is a total item, and settings related to the total are described in the tag.
  • the ⁇ Runtime> tag is an external linkage item, and the activation of an external program is described in the tag.
  • ⁇ Numbering> tag is a numbering item, and settings related to numbering are described in the tag.
  • the ⁇ Group> tag is a grouping item, and settings related to grouping are described in the tag.
  • the ⁇ Ungroup> tag is an ungrouping item, and settings related to ungrouping are described in the tag.
  • An ⁇ Out> tag is a data-out item, and an output CSV file is described in the tag.
  • the ⁇ Comment> tag is a comment item, and a comment (character string) is described in the tag.
  • a logical expression (Fml) indicating a search condition is described as an XML element (element).
  • asc ascending order
  • descending order sort
  • Sort Sort
  • the target (Target) is the file content specified by the data set.
  • Fields (Field) are described as many as the number of attributes to be output.
  • An attribute name is described in the field element (Cell), and a full path file name is described in the file name attribute.
  • the unit (Unite) is described as many as the number of attributes connected by the connection of attributes.
  • the attribute name to be connected is described, and in addition, the full path file name is described in the file name (filename) attribute.
  • the new field (New) describes the attribute contents to be output.
  • the number of fields (Field) is described as many as the number of targets (Target).
  • an attribute name of data-out is described.
  • the horizontal connection is a tag indicating the horizontal connection.
  • a key attribute is described in the key (Key), and identification information indicating any of perfect match, forward match, backward match, and intermediate match is described in the name identification (match) attribute.
  • the cleansing attribute any of phone numbers, postal codes, dates, corporate names, numerical values, Japanese analysis, English analysis, name, address, and user dictionary that are not used is described.
  • join (Add) element as the duplicate value processing (jointype) attribute, identification information indicating one of duplicate exclusion (one line), duplication (one line), frequency sorting, auto-completion, and connection factor between values
  • (delimiter) attribute identification information indicating any of a line feed, a slash, a comma, or a space is described.
  • Summarization is a tag indicating aggregation.
  • Key indicates the key element and is described as many as the number of keys.
  • the aggregate attribute indicates the name identification judgment, exact match, year, month, day, week (year), week (month) (Identification information) indicating any of (unit), day of the week, or user dictionary.
  • the Statistic element indicates attribute aggregation and is described by the number of attributes to be output.
  • the flag attribute is a flag, and a non-overlapping value between 0 and 99 is input.
  • the collect attribute indicates the total content, and identification information indicating any one of combination, frequency, sum, average, median, mode, maximum value, minimum value, variance, and standard deviation is set.
  • the StatisticNew element indicates new attribute aggregation.
  • the attribute name is described as many as the number of attributes to be output, and the collect attribute is an aggregate content, and identification information indicating any of count, calculation, condition, branch (unused), numbering (obsolete), or function processing Is set.
  • the fml attribute indicates a total expression.
  • the numbers in square brackets indicate the numbers set by flags, and the numbers in curly brackets indicate the registration order starting from 0 of the new attribute aggregation.
  • the description of the summation formula describes a formula of four arithmetic operations when the summation content is “calculation”. If the summary is “condition”, describe the conditional expression. If the summary is “function processing”, describe the function.
  • Runtime is a tag indicating external linkage.
  • the File element describes the absolute path of the external program.
  • a command line option is described in the option attribute.
  • the Wait attribute the waiting time after starting the external program is described in milliseconds.
  • a set value for waiting until the external program ends may be provided.
  • the user can understand the specific contents of processing such as “horizontal join” and “total”.
  • the setting can be easily changed.
  • the user can easily understand the latest specification. Therefore, for example, even when a user who is in charge of work changes, the takeover is smooth.
  • the contents of each element included in the process field and the attribute name of the CSV file of input / output data may be printed as a simple specification or design document for the job.
  • the tabular data processing apparatus 5 is also a computer as shown in FIG.
  • a computer 1000 illustrated in FIG. 3 includes a CPU 1001, a main storage device 1002, an auxiliary storage device 1003, a communication IF 1004, an input / output IF 1005, a drive device 1006, and a communication bus 1007.
  • the CPU 1001 performs processing according to the present embodiment by executing a program.
  • the main storage device 1002 caches programs and data read by the CPU 1001 and develops a work area of the CPU.
  • the main storage device is a RAM, a ROM, or the like.
  • the auxiliary storage device 1003 stores programs executed by the CPU 1001, setting information used in the present embodiment, and the like.
  • FIG. 91 is a process flowchart showing an example of the data profiling process.
  • the data input unit of the tabular data processing device 5 reads tabular data in response to a user instruction (FIG. 91: S301).
  • the designation of one or more tabular data described in the above embodiment is accepted.
  • two or more tabular data in which associations between items are defined on the setting screen shown in FIG. 7A or FIG. 41 may be input.
  • data profiling processing is performed on the union of tabular data after performing vertical join based on the setting.
  • GGGGyyMMdd (Heisei 250110, H250110), yyMMdd (130110), yyyyMMdd (20130110), GGGGyy year MM month dd day (2013 01 May 10, H25 January 10, 2013, yyyy MM month dd (January 10, 2013), GGGGyy / MM / dd (2013/01/10, H25 / 01/10), yy / MM / dd (13/01/10), yyyy / MM / dd (2013/01 / 10,2013 / 1/10 9:06:39), yy-MM-dd (13-01-10), GGGGyy-MM Does it fall under the format of -dd (Heisei 25-01-10, H25-01-10), yyyy-MM-dd (2013-01-10), MM month dd day of yy (January 10, 2013) Depending
  • a “profile name” representing a specific analysis method is displayed at the bottom of the pull-down menu, and the user selects one of the profile names.
  • the background of the selected profile name is highlighted by hatching. That is, in the example of FIG. 92, “appearance frequency” is selected.
  • an argument input field is displayed at the bottom of the data quality setting screen.
  • a pull-down menu for selecting an item name is displayed. The user can select any of the item names included in the input file.
  • the data correction unit 507 of the tabular data processing apparatus 5 receives an input data correction instruction from the user and corrects the input data (S306).
  • the input data correction instruction for example, by selecting one of the record numbers of the input data displayed in the right middle part of FIG. 93, the selected record in the input data as shown in FIG. 38, for example, can be displayed and the value can be corrected. You may do it.
  • an instruction to reflect the correction in a batch may be received.
  • the value can be corrected using the above-described function processing. As described above, according to the function processing, it is possible to extract a predetermined type of character or standardize the expression format of the value.
  • the corrected input data may be overwritten and recorded, or may be saved as a separate file with a name.
  • the saved file can be used for the above-described vertical coupling process, horizontal coupling process, aggregation process, and the like.
  • batch correction of input data can be performed by other than the exemplified function processing.
  • a predetermined character string or missing data may be replaced with a designated character string or the like.
  • a so-called regular expression may be used as the search condition. For example, with respect to an element registered in association with a certain item, “construction” is searched with backward matching like “* construction”, and the retrieved element is designated by a designated character such as “M construction”. Can be replaced with a column.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 表形式データ処理プログラムは、複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを処理するプログラムであって、ユーザの操作に基づき、複数の表形式データにそれぞれ含まれる項目を対応付けて1つの表形式データを生成する縦結合処理を行う縦結合ステップと、ユーザの操作に基づき、生成された1つの表形式データに含まれる項目をキーとして当該1つの表形式データに含まれるレコードを集約する集約処理を行う集約ステップと、項目の構成が同一の表形式データを用いて、縦結合処理及び集約処理と同一の処理を実行するための再実行情報として、項目の対応付けとキー項目とを少なくとも記憶装置に記憶させるステップとをコンピュータに実行させる。

Description

表形式データ処理プログラム、方法及び装置
 本発明は、表形式データ処理プログラム、方法及び装置に関する。
 顧客情報、営業情報、その他のあらゆる情報を管理するため、例えばRDB(Relational Database)が利用されている。RDBを利用する場合、正規化したテーブルを作成することにより、情報を一元的に管理し、不整合、損失、冗長を低減することができる。なお、1又は複数のテーブルから同一の実体に関するレコードを求めるため、「名寄せ」と呼ばれる処理を行うこともある。名寄せすることにより、例えば、同一人物が有する複数の口座を取りまとめて扱うことができるようになるため、集計結果がより精確になる。
 また、利用者が、セルと自動実行データとの関連付けの登録・削除・更新を行うことによって、内部データを意識することなく表計算プログラムを自動実行させる技術が提案されている(例えば、特許文献1)。また、設計書に基づいて、コンピュータプログラムのソースコードを自動生成するという技術も提案されている(例えば、特許文献2)。
特開平5-73589号公報 特開2009-223843号公報 特開2005-135221号公報
 RDBを利用するためには、テーブルの設計、レコードの登録及びメンテナンス等が必要である。さらに、サーバの構築、データ操作言語やRDBMS(Relational Database Management System)の使用等、専門的な技術が必要になる場合もある。そこで、RDBを利用することなく簡易的にデータを管理するため、CSV(Comma Separated Values)に代表されるテキストで記録された表形式データ(「Delimiter-Separated Values」、「Character-Separated Values」等とも呼ばれる)を利用する場合も少なくない。
 しかしながら、上記のような表形式データを表計算ソフト等で処理する場合、RDBMSによって実行するようにテーブルを結合したり値を集計したりといったデータ操作をするためには、手間と時間がかかるという問題がある。また、取引先ごと、支社ごと、部署ごと等でそれぞれ異なるデータ構造の情報資産を保有している場合に、これらを統合して集計等するときには専用のシステムを開発する必要があった。
 そこで、本発明は、デリミター(Delimiter)区切りで表現された表形式データの操作を支援するための技術を提供することを目的とする。
 本発明に係る表形式データ処理装置は、複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを処理する装置であって、ユーザの操作に基づき、複数の表形式データにそれぞれ含まれる項目を対応付けて1つの表形式データを生成する縦結合処理を行う縦結合部と、ユーザの操作に基づき、生成された1つの表形式データに含まれる項目をキーとして当該1つの表形式データに含まれるレコードを集約する集約処理を行う集約部と、項目の構成が同一の表形式データに対して、縦結合処理及び集約処理を実行するための再実行情報として、項目の対応付けとキー項目とを少なくとも記憶装置に記憶させる制御部とを有する。
 このようにすれば、表形式データの構成をユーザの操作に基づいて再構築することができる。また、同様の構成を有する表形式データに対し、同様の操作を実行するための情報を記憶させておくことができる。したがって、表形式データの操作を支援するための技術を提供することができる。
 また、表形式データ処理装置は、ユーザの操作に基づき、同一概念の関係、又は上位概念及び下位概念の関係にある語句の登録を受け付ける辞書登録部をさらに有し、集約部は、キーとされた項目の要素が同一概念の関係にあるレコード、又は上位概念及び下位概念の関係にあるレコードを集約するようにしてもよい。このようにすれば、レコードを集約する際にユーザが設定した辞書に基づいて名寄せを行うことができるようになる。
 また、表形式データ処理装置は、ユーザの操作に基づき、再実行情報と、当該再実行情報に従って処理を実行する時刻とを少なくとも含むスケジュール情報を記憶装置に記憶させるスケジュール設定部と、スケジュール情報に基づいて、スケジュール情報に設定された時刻に再実行情報が規定する縦結合処理及び集約処理を行うバッチ処理部とをさらに有するようにしてもよい。このようにすれば、処理をスケジュールしておくことができるようになる。
 また、表形式データ処理装置は、縦結合処理及び集約処理の実行順序をグラフィカルに表示するとともに、縦結合処理を実行するための設定である項目の対応付け、又は集約処理を実行するための設定であるキー項目、又は縦結合処理もしくは集約処理に入力される表形式データの項目の構成もしくは出力される表形式データの項目の構成を表示する表示部をさらに有するようにしてもよい。このようにすれば、ユーザは、実行される表形式データの操作を視覚的に確認することができる。
 本発明の他の側面に係る表形式データ処理装置は、複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する。具体的には、複数の入力テーブルにそれぞれ含まれる項目と、出力テーブルに含まれる項目との対応付けの指定を受け付ける設定処理部と、出力テーブルに含まれる項目の一覧を表示する一覧領域と、集約に用いるキー項目を表示するキー指定領域とを表示する表示制御部と、一覧領域に表示された項目をキー指定領域へドラッグするユーザの操作により、キー項目の指定を受け付けるキー指定部と、指定されたキー項目の値が所定の条件を満たす入力テーブルのレコードを集約し、出力テーブルを生成する出力部とを有する。
 このようにすれば、ユーザはテキストでクエリを入力することなく、データ操作の要求を入力することができる。すなわち、表形式データの操作を支援するための技術を提供することができる。
 また、表形式データ処理装置は、キー項目の各々について、レコードを集約するための条件の指定を受け付けるキー設定部と、条件が指定されたキー項目の表示態様を、条件の指定が完了したことを示す所定の表示態様に変更する第1表示変更部とをさらに有するようにしてもよい。このようにすれば、キー項目に対してデータ操作の要求に必要な設定が完了したか否かをユーザが視覚的に認識できるようになる。
 また、表形式データ処理装置は、表示ステップにおいて、集計対象の項目を表示する集計項目領域をさらに表示し、一覧領域に表示された項目を集計項目領域へドラッグするユーザの操作により、集計項目の指定を受け付ける集計項目指定部と、指定された集計項目に対して、集計方法の指定を受けつける集計方法指定部と、集計項目領域において、集計方法が指定された集計対象の項目の表示態様を、集計方法の指定が完了したことを示す所定の表示態様に変更する第2表示変更部とをさらに有するようにしてもよい。このようにすれば、ユーザはテキストでクエリを入力することなく、集計に関するデータ操作の要求を入力することができる。また、集計項目に対して必要な設定が完了したか否かをユーザが視覚的に認識できるようになる。
 また、表形式データ処理装置は、集計項目指定部が、集計項目として、新たな項目の生成の要求を受け付けるとともに、集計項目領域において、集計項目を、順序を表す所定の方向に沿って一列に表示し、集計方法指定部が、新たな項目の集計方法として、一覧領域の項目及び集計項目領域において当該新たな項目よりも順序が先の集計項目の少なくともいずれかを用いて、当該新たな項目の要素を決定する計算式又は条件式の指定を受け付けるようにしてもよい。このようにすれば、ユーザは、順序が先の項目に係る集計結果を用いてさらに集計を行うための要求を入力できる。段階を追って入力することにより、ユーザは、複雑な集計の要求も容易に入力することができる。
 また、表形式データ処理装置は、キー指定部において、指定されたキー項目を、順序を表す所定の方向に沿って一列に表示するとともに、ユーザのドラッグ操作に応じてキー項目の順序を変更し、出力部において、キー項目の値が所定の条件を満たす、入力テーブルのレコードを、キー項目の順序にしたがって複数のキーによるソートを行い、出力テーブルを生成するようにしてもよい。このようにすれば、ユーザは、キー項目の指定を容易に行うことができる。
 また、本発明の他の側面に係る表形式データ処理装置は、複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する。具体的には、入力テーブルに基づいて、項目の順序に対応付けられている要素を抽出し、表形式データにおけるレコードの順序と対応付けて項目ごとに保持する項目別データを生成する項目別データ生成部と、項目別データに含まれる要素を集約し、集約後の項目別データから出力テーブルを生成する出力テーブル生成部とを有する。
 このようにすれば、表形式データを項目ごとの単位で表す項目別データに分解して扱うことができる。項目別データに含まれる要素を集約するだけでなく、出力テーブルに出力する項目に応じて項目別データを結合することができる。すなわち、項目別データは、複雑な処理を行うのに適している。なお、集約処理としては、例えばテーブルの結合や集計を行うことができる。
 また、表形式データ処理装置は、項目別データを用いて、所定の条件を満たす複数の要素に対応する、レコードの順序の集合を生成する順序集合生成部をさらに有し、出力テーブル生成部は、集合に属する順序に基づいて項目別データに含まれる要素を集約するようにしてもよい。このようにすれば、レコードの順序(換言すれば、順番を示す番号)の集合を用いて集約を行うことができるようになる。ここで、順序の集合を生成するためには、所定の条件を満たす、各要素が属すべき集合にレコードの順序を分類すればよい。集約のためにレコードを検索するような必要がなく、レコードの順序の集合を用いることで高速に処理を行うことができる。
 また、表形式データ処理装置は、複数の表形式データ間における項目の対応付けを表すデータに基づいて、複数の表形式データの項目別データの和集合を生成する縦結合部をさらに有し、順序集合生成部は、項目別データの和集合を用いて、レコードの順序の集合を生成するようにしてもよい。このようにすれば、複数の表形式データを対象として、データ操作を行うことができるようになる。
 また、表形式データ処理装置は、集合に属する順序に基づいて集約される要素に異なる値が存在する場合、集約後の項目別データには、異なる値を結合した要素を登録するようにしてもよい。このようにすれば、所定の条件を満たすレコードを1つに集約して表示することができるようになる。
 また、表形式データ処理装置は、集約後の項目別データを用いて、第2の所定条件を満たす複数の要素に対応する、レコードの順序の集合を生成する第2順序集合生成部をさらに有し、出力テーブル生成部において、第2順序集合生成部が生成した集合に属する順序に基づいて集約後の項目別データに含まれる要素をさらに集約し、集約後の項目別データから出力テーブルを生成するようにしてもよい。このようにすれば、例えば結合や集計のような集約処理を行った後の項目別データに対して、さらに集約処理を行うことができる。すなわち、段階を追って複雑なデータ操作を行うことができる。
 また、本発明の他の側面に係る表形式データ処理装置は、複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する。具体的には、所定の規則に基づいてグループに分類した、所定の項目に対応する要素の件数を、グループごとに集計し、集計結果を出力する集計部と、入力データから、集計結果におけるグループのいずれかに分類された要素を含むレコードを抽出して出力する出力部と、出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更する修正部とを有する。
 当該処理は、本発明におけるデータプロファイリング処理に相当する。このようにすれば、誤りや漏れ、重複等の不適切なデータを統計的手法(集計)によって可視化(出力)することができる。すなわち、不適切なデータの検出及び修正を支援することができる。
 また、所定の規則に基づく分類は、要素を記述する表現形式に基づく分類であってもよい。このようにすれば、特にスキーマの定義されていないDSV形式等の入力データに登録され得る不適切な要素の存在を、ユーザは容易に発見することができる。具体的には、所定の規則に基づく分類は、要素が日付を表すか否か、一意であるか否か、空であるか否か、数値であるか否か、若しくは所定の文字列を含むか否かによって、又は要素ごと若しくは要素のデータパターンごとに行うようにしてもよい。
 また、複数の表形式データ間における項目の対応付けを示すデータに基づいて、複数の表形式データの和集合を生成する縦結合部をさらに有し、集計部は、表形式データの和集合を入力データとするようにしてもよい。このようにすれば、本発明における縦結合後の表形式データを対象として、データプロファイリング処理を行うことができる。
 なお、上記課題を解決するための手段の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、上記課題を解決するための手段の内容をコンピュータが実行する表形式データ処理方法や、上記課題を解決するための手段の内容を実行するステップをコンピュータに実行させる表形式データ処理プログラムを提供することもできる。さらに、当該プログラムを保持する記録媒体を提供するようにしてもよい。
 本発明によれば、デリミター(Delimiter)区切りで表現された表形式データの操作を支援するための技術を提供することができる。
システムの構成の一例を示す機能ブロック図である。 表形式データ処理装置の一例を示す機能ブロック図である。 コンピュータの装置構成の一例を示す機能ブロック図である。 ファイル読込処理の一例を示す処理フローである。 表形式データ(CSVファイル)を説明するための図である。 表形式データの行リストを説明するための図である。 Key-Value形式のマップを説明するための図である。 縦結合設定処理の一例を示す処理フローである。 縦結合の設定データを説明するための図である。 縦結合の設定データを説明するための図である。 項目別リスト生成処理の一例を示す処理フローである。 項目別リストを生成するためのオブジェクトの一例を示す図である。 項目別リストを説明するための図である。 項目別リストを説明するための図である。 縦結合処理の一例を示す処理フローである。 中間的に生成される項目別リストを説明するための図である。 中間的に生成される項目別リストを説明するための図である。 縦結合後の項目別リストを説明するための図である。 出力処理の一例を示す処理フローである。 行別リストを説明するための図である。 出力する表形式データの行リストを説明するための図である。 出力する表形式データ(CSVファイル)を説明するための図である。 横結合設定処理の一例を示す処理フローである。 横結合の条件を設定する画面を説明するための図である。 横結合の条件を設定する画面を説明するための図である。 横結合の条件を設定する画面を説明するための図である。 集計設定処理の一例を示す処理フローである。 集計処理の条件を設定する画面を説明するための図である。 集計処理の条件を設定する画面を説明するための図である。 集計処理の条件を設定する画面を説明するための図である。 集計処理の条件を設定する画面を説明するための図である。 集計処理の条件を設定する画面を説明するための図である。 集計処理の条件を設定する画面を説明するための図である。 対照群生成処理の一例を説明するための処理フローである。 対照群生成処理の一例を説明するための処理フローである。 対照群を説明するための図である。 対照群を説明するための図である。 ソートを説明するための図である。 ソートを説明するための図である。 ソートを説明するための図である。 ソートを説明するための図である。 横結合・集計処理の一例を説明するための処理フローである。 新規属性の条件を設定する画面を説明するための図である。 新規属性の条件を設定する画面を説明するための図である。 新規属性の条件を設定する画面を説明するための図である。 新規項目生成処理の一例を示す処理フローである。 集計処理を説明するための図である。 集計処理を説明するための図である。 表形式データ処理装置の一例を示す機能ブロック図である。 実施形態に係るジョブの概要を説明するための図である。 縦結合処理の入力データの一例を示す表である。 縦結合処理の入力データの一例を示す表である。 縦結合処理の出力データの一例を示す表である。 縦結合の設定画面(縦結合列編集画面)の一例を示す図である。 縦結合の設定画面(縦結合ベースファイル選択画面)の一例を示す図である。 縦結合の設定画面(表示属性抽出設定画面)の一例を示す図である。 横結合の入力データ(縦結合の出力データ)の一例を示す表である。 縦結合の入力データの一例を示す表である。 縦結合の入力データの一例を示す表である。 横結合の出力データの一例を示す表である。 横結合の設定画面(横結合画面)の一例を示す図である。 横結合の設定画面(横結合キー設定画面)の一例を示す図である。 横結合の入力データの一例を示す表である。 横結合の出力例を示す表である。 横結合の他の出力例を示す表である。 横結合の他の出力例を示す表である。 横結合の他の出力例を示す表である。 横結合の他の出力例を示す表である。 横結合の他の出力例を示す表である。 横結合の他の出力例を示す表である。 横結合の他の出力例を示す表である。 横結合の他の出力例を示す表である。 ユーザ辞書の記載例を示す図である。 ユーザ辞書における語句の関係を説明するための模式図である。 他のユーザ辞書の記載例を示す表である。 他のユーザ辞書の記載例を示す表である。 集計処理の出力データの一例を示す表である。 集計処理の設定画面(集計画面)の一例を示す図である。 集計処理の設定画面(集計キー設定画面)の一例を示す図である。 集計処理の設定画面(集計属性設定画面)の一例を示す図である。 集計処理の設定画面(集計追加属性画面)の一例を示す図である。 集計処理の設定画面(計算画面)の一例を示す図である。 集計処理の設定画面(条件画面)の一例を示す図である。 集計処理の設定画面(関数処理画面)の一例を示す図である。 グループ化処理の入力データの一例を示す表である。 グループ化処理の出力データの一例を示す表である。 グループ化処理の設定画面(グループ化画面)の一例を示す図である。 グループ化解除処理の出力データの一例を示す表である。 グループ化解除処理の設定画面(グループ化キー設定画面)の一例を示す図である。 ナンバリング処理の設定画面の一例を示す図である。 検索条件の設定画面の一例を示す図である。 XMLファイルの内容の一例を示す図である。 バッチ処理の概要を説明するための図である。 バッチ処理の設定画面の一例を示す図である。 新規ジョブ実行処理の一例を示す処理フロー図である。 ジョブの設定画面一例を示す図である。 ジョブの設定画面の他の例を示す図である。 ジョブの設定画面の他の例を示す図である。 ジョブの設定画面の他の例を示す図である。 ジョブの設定画面の他の例を示す図である。 バッチ定義処理の一例を示す処理フロー図である。 結合処理の設定画面の一例を示す図である。 表形式データ処理装置の一例を示す機能ブロック図である。 データプロファイリング処理の一例を示す処理フローである。 データ品質ツール設定画面の一例を示す図である。 データ品質ツール画面の一例を示す図である。 データプロファイリング設定画面の一例を示す図である。 データプロファイリング画面の一例を示す図である。
 以下、図面を参照して、一実施形態に係る表形式データ処理プログラム、表形式データ処理装置、及び表形式データ処理方法について説明する。実施形態の構成は例示であり、本発明に係るプログラム、装置、方法は実施形態の構成には限定されない。
<<内部処理とユーザインターフェースに係る実施形態>>
<システム構成>
 図1は、表形式データを処理するためのシステムの一例を示す機能ブロック図である。本実施形態に係るシステムは、表形式データ処理装置1と、ユーザ端末2とを含む。また、表形式データ処理装置1とユーザ端末2とは、ネットワーク3を介して接続されている。
 表形式データ処理装置1は、例えば、表形式データに対し本実施形態で説明する処理を行うサーバである。また、ユーザ端末2は、例えば、インターネットに接続する機能を有するコンピュータである。ユーザは、例えば、ユーザ端末2が有するインターネットブラウザを介して、表形式データ処理装置1に本実施形態で説明する処理の実行を命じたり、表形式データ処理装置1から受信した処理の結果を確認したりすることができる。ネットワーク3は、例えばインターネットやイントラネット等のようなネットワークシステムである。なお、表形式データ処理装置1とユーザ端末2とは、専用線で接続されていてもよい。また、図1では1つのユーザ端末2を示しているが、複数のユーザ端末が接続されていてもよい。一方、複数の表形式データ処理装置1がネットワーク上に存在し、分散して処理を行う構成としてもよい。
<機能構成>
 図2は、表形式データ処理装置1の一例を示す機能ブロック図である。本実施形態に係る表形式データ処理装置1は、データ記憶部101と、設定処理部102と、データ分割部103と、表示制御部104と、縦結合部105と、対照群生成部106と、横結合部107と、集計部108と、出力データ生成部109とを有する。
 データ記憶部101は、例えば、本実施形態で処理の対象となる表形式データ、処理の要求を示す設定データ、処理結果として生成される表形式データ、その他処理において中間的に生成されるデータを保持する。表形式データ処理装置1は、例えば、カンマやタブ、スペース等の区切記号(「デリミター」とも呼ぶ)によってフィールド(「列」、「項目」、「要素」又は「属性」とも呼ぶ)が区切られ、改行によってレコード(「行」とも呼ぶ)が区切られたテキストデータを処理対象とする。本実施の形態では、ユーザが転送したCSVデータが、予め表形式データ処理装置1のデータ記憶部101に記憶されているものとする。
 設定処理部102は、例えば、結合する複数の表形式データの指定、レコードを集約する条件、集計の方法のようなデータ操作の要求を、ネットワーク3を介してユーザ端末2から受け付け、データ記憶部101へ記憶させる。データ分割部103は、表形式データを、レコード別(行ごと)に分割したり、項目別(列ごと)に分割したりして、データ記憶部101へ記憶させる。表示制御部104は、ユーザがデータ操作の要求を入力するためのGUI(Graphical User Interface)を生成したり、結果を表示するための画面を生成したりする。
 縦結合部105は、例えば複数の表形式データに含まれるレコードを1つの表形式データに統合する処理(「縦結合処理」とも呼ぶ)を行う。対照群生成部106は、集約するレコードを行番号(「レコード番号」とも呼ぶ)の集合として表す対照群を生成する処理を行う。なお、行番号とは、例えば、CSVデータの1行ごとに先頭から付される通し番号であり、行番号により、表形式データにおいてレコードを一意に特定することができる。横結合部107は、例えばキー項目の値が所定の条件を満たす、複数の表形式データのレコードを1レコードに結合する処理(「横結合処理」とも呼ぶ)を行う。集計部108は、データ記憶部101に記憶された設定に基づいて、値を数値として集計したり、値を文字列として1つのフィールドに統合したりする処理を行う。出力データ生成部109は、結合された項目別データから行別データを生成し、CSVデータとして出力する。
<装置構成>
 図3は、コンピュータの一例を示す装置構成図である。表形式データ処理装置1及びユーザ端末2は、図3に示すようなコンピュータである。図3に示すコンピュータ1000は、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、通信IF(Interface)1004、入出力IF(Interface)1005、ドライブ装置1006、通信バス1007を備えている。CPU1001は、プログラム(「ソフトウェア」又は「アプリケーション」とも呼ぶ)を実行することにより本実施の形態に係る処理等を行う。主記憶装置1002は、CPU1001が読み出したプログラムやデータをキャッシュしたり、CPUの作業領域を展開したりする。主記憶装置は、具体的には、RAM(Random Access Memory)やROM(Read Only Memory)等である。補助記憶装置1003は、CPU1001により実行されるプログラムや、本実施の形態で用いる設定情報などを記憶する。補助記憶装置1003は、具体的には、HDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等である。主記憶装置1002や補助記憶装置1003は、表形式データ処理装置1のデータ記憶部101として働く。通信IF1004は、他のコンピュータとの間でデータを送受信する。表形式データ処理装置1及びユーザ端末2は、通信IF1004を介してネットワーク3に接続される。通信IF1004は、具体的には、有線又は無線のネットワークカード等である。入出力IF1005は、入出力装置と接続され、ユーザから入力を受け付けたり、ユーザへ情報を出力したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。ドライブ装置1006は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。そして、以上のような構成要素が、通信バス1007で接続されている。なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素(例えば、ドライブ装置1006)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置1006で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置1003、通信IF1004などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。そして、CPU1001がプログラムを実行することにより、上記のようなコンピュータを図2に示した表形式データ処理装置1として働かせる。また、ユーザ端末2は、例えば、CPU1001が実行するインターネットブラウザを介して表形式データ処理装置1へ処理を要求したり、受信した処理結果を表示したりする。
<ファイル読込処理>
 次に、表形式データ処理装置1が実行する処理を、処理フローを用いて説明する。図4は、ファイル読込処理の一例を示す処理フローである。まず、表形式データ処理装置1の設定処理部102は、CSVファイルの入力を受け付ける(図4:ステップS1)。具体的には、設定処理部102は、ユーザ端末2からCSVファイルを受信し、データ記憶部101に記憶させる。例えば、図5に示すようなCSVファイルが入力される。
 図5Aは、本実施形態に係る表形式データの処理を説明するための図である。図5AのCSVファイルは、1行目にカンマ区切りで複数の項目名を有し、2行目以降にカンマ区切りで複数のフィールドを含むレコードを複数有している。また、カンマで区切られた項目名及びフィールドは、それぞれカンマで区切られた順序で対応しており、1つのCSVファイルには、項目名及び各レコードのフィールドが同数存在する。
 また、設定処理部102は、項目名及びレコードの開始行の入力を受け付ける(S2)。具体的には、ユーザは、CSVファイルごとに項目名が登録されている行、及びレコードが登録されている行の開始位置を、ユーザ端末2を介して指定する。一方、設定処理部102は、項目名が登録されている行、及びレコードが登録されている行の開始位置を、CSVファイルと対応付けてデータ記憶部101に記憶させる。図5Aの例では、1行目が項目名の開始位置であり、2行目がレコードの開始位置である。
 その後、データ分割部103は、CSVファイルの各行を要素とするリストを生成する(S3)。具体的には、データ分割部103は、例えばCSVファイルの先頭から1行ずつ読み出し、1行目から順に新たな要素としてリストに追加する。ここでは、例えば、図5Bに示す表形式データの行リストに示すようなデータが生成される。図5Bの行リストでは、リストの各要素が実線で区切られ、各要素にはCSVデータの各レコードが登録されている。
 また、データ分割部103は、生成された表形式データの行リストを、表形式データのファイル名と対応付けて、データ記憶部101へ記憶させる(S4)。例えば、Key(キー)をファイル名とし、Value(値)に行リストを登録した、Key-Value形式のデータ構造(いわゆるマップ)で記憶するようにしてもよい。
 その後、例えば設定処理部102は、未処理のCSVファイルが存在するか判断する(S5)。未処理のCSVファイルが存在する場合(S5:YES)、処理はS1に戻る。一方、未処理のCSVファイルが存在しない場合(S5:NO)、ファイル読込処理を終了する。本実施形態では、ファイル読込処理で読み込まれた1又は複数のCSVファイルを用いて、表形式データを結合したり、集計したりする。
<縦結合設定処理>
 次に、複数の表形式データに含まれるレコードの和集合を生成する縦結合処理を説明する。図6は、縦結合設定処理の一例を示す処理フローである。
 まず、設定処理部102は、ユーザ端末2から、複数の表形式データに含まれる項目のうち、対応する項目の入力を受け付ける(図6:S11)。ユーザは、結合する複数の表形式データを指定するとともに、結合する表形式データに含まれ、結合後の表形式データにおいて同一の列(項目)に表示する項目の対応付けを指定する。ここでは、同じ実体を示す項目が対応付けられる。例えば、あるCSVファイルにおける「氏名」という項目と、別のCSVファイルにおける「名前」という項目との対応付けが入力される。
 また、本ステップでは、1つの表形式データに含まれる複数の項目を結合し、1つの項目として扱うようにしてもよい。設定処理部102は、ある表形式データに含まれる複数のフィールドの結合と、他の表形式データに含まれる1のフィールド又は複数のフィールドの結合との対応付けの入力を受け付ける。例えば、あるCSVファイルにおける「苗字」という項目及び「名前」という項目の結合と、他のCSVファイルにおける「氏名」という項目との対応付けが入力される。
 図7Aは、本ステップで入力される対応付けを説明するための図である。図7Aに示す表の1行目は、項目の通し番号を示している。また、表の2行目は、縦結合後の表形式データの出力項目名を示す。結合後の表形式データの項目名は、ユーザによって入力されるものとする。また、3行目以降の各行は、異なるCSVファイルにおける項目名を示す。そして、同じ列に登録されている項目名は、本ステップにおいて対応付けられた項目名を示す。例えば、4行目に示すCSVファイル「AAA」における「苗字」及び「名前」という項目の組合せと、5行目に示すCSVファイル「BBB」における「氏名」という項目とが対応付けられている。なお、CSVファイル名が「共通」の行は、登録されていないCSVファイル(図7Aの例では、「AAA」及び「BBB」以外のCSVファイル)にも共通して適用される設定である。
 このように、対応する項目がある場合には、ユーザの操作により本ステップで対応付けられる。なお、複数の表形式データには、必ずしも対応する項目があるわけではない。また、本ステップでは、対応する項目をユーザが入力するものとして説明したが、例えば異なる表形式データに含まれる同一の項目名を予め対応付けて提示し、ユーザが適宜修正できるようにしてもよい。
 次に、設定処理部102は、入力された縦結合の設定データをデータ記憶部101に記憶させる(S12)。設定処理部102は、図7Aを用いて説明した項目の対応付けに基づいて、例えば、縦結合後の出力項目名に対し、当該出力項目名に対応する複数のCSVファイル名及び項目名を対応付けて登録する。例えば、図7Bに示すような、縦結合後の出力項目名のリストを生成して、データ記憶部101に記憶させる。
 図7Bの例では、実線で区切られた、出力項目を表す要素の中に、CSVファイル名及び項目名が入れ子状に登録されている。なお、CSVファイル名が空(CSVファイル名に何も登録されていない)の項目名は、特定のCSVファイルに限らず、出力項目に対応付けられていることを示す。以上で、縦結合設定処理を終了する。縦結合設定処理は、縦結合を行うCSVファイルの組合せについて、予め実行される。
<項目別リスト生成処理>
 次に、縦結合処理等の前処理として実行される項目別リスト生成処理を説明する。図8は、項目別リスト生成処理の一例を示す処理フローである。
 まず、データ分割部103は、処理対象の表形式データの行リストを1つ取得する(図8:S21)。ここでは、データ分割部103は、例えば結合するCSVファイルの行リストを1つデータ記憶部101から読み出す。
 次に、データ分割部103は、行リストから項目名の行(図5Bの例では、1行目)にカンマ区切りで登録されている項目名の数を計数する(S22)。項目名及びレコードの開始行は、図4のS2で指定された情報をデータ記憶部101から読み出して用いる。本ステップでは、データ分割部103は、処理対象の表形式データに含まれる列(項目名)の数を求める。
 その後、データ分割部103は、計数された項目名の数だけ項目別リストを生成し、初期化する(S23)。例えば、項目別リストに値を登録等するためのクラスを定義しておき、図9に示すようなオブジェクトを項目名の数だけ生成するようにしてもよい。図9のオブジェクトには、値を追加したり項目名を追加したりするためのメソッド(関数)が定義されている。また、本ステップでは、項目別リストに項目名を追加する。これにより、項目名によって項目別リストを識別することができるようになる。なお、項目別リストは、例えば表形式データ中の順序を示す通し番号で識別するようにしてもよい。図9のオブジェクトは一例であり、表形式データの項目ごとに要素を保持するリストを生成できれば、本実施形態は特定のプログラミング言語等には限定されない。
 また、データ分割部103は、表形式データの行リストから、レコードの登録された要素を1つ読み出す(S24)。例えば、図5Bに示した行リストから、2行目の要素が読み出される。ここでは、CSVファイルの1行分に相当するデータ(すなわち、レコード)が読み出される。
 次に、データ分割部103は、読み出したデータから、カンマで区切られた複数の値を分解し、複数の項目別リストにそれぞれ追加する(S25)。ここでは、データ分割部103は、CSVファイルの1行に含まれる、複数の項目に対応する値を、項目の数だけ生成された項目別リストの各々に新たな要素として登録する。
 そして、データ分割部103は、行リストに未処理の要素が存在するか判断し(S26)、未処理の要素が存在する場合(S26:YES)は、S24の処理に戻る。一方、未処理の要素が存在しない場合(S26:NO)、データ分割部103は、表形式データの行リストに未処理のものが存在するか判断する(S27)。未処理の行リストが存在する場合(S27:YES)、データ分割部103は、S21の処理に戻る。一方、未処理の行リストが存在しない場合(S27:NO)、データ分割部103は、項目別リスト生成処理を終了する。
 項目別リスト生成処理では、表形式データに含まれる項目(列)ごとに、各レコード(行)の値を1行目から順に要素として保持するリストが生成される。図5Bに示した行リストの場合、例えば、図10Aに示すような項目別リストが生成される。図10Aには、「No.」、「ID」、「L_Name」、「F_Name」、「Sex」、「Station」及び「Expense」の各項目名に対応する6つの項目別リストが示されている。各項目別リストには、表形式データにおけるレコードの順に対応する順序で、値が要素として保持される。
<縦結合処理>
 次に、複数の表形式データに含まれるレコードの和集合を生成する縦結合処理を説明する。なお、本実施形態では、図10Aに示した項目別リストと、他の表形式データから生成された図10Bに示す項目別リストとが予めデータ記憶部101に記憶されているものとする。図11は、縦結合処理の一例を示す処理フローである。
 まず、縦結合部105は、縦結合の設定データに基づいて、結合する表形式データを1つ特定する(図11:S31)。また、縦結合部105は、縦結合の設定データに基づいて、出力する項目の数だけ出力用の項目別リストを生成し、初期化する(S32)。例えば、縦結合部105は、図7Bに示した設定データを読み出し、要素の数だけ出力用の項目別リストを生成する。項目別リストの生成及び初期化は、図8のS23と同じ処理である。
 また、縦結合部105は、設定データから出力項目を1つ取得し、項目名を特定する(S33)。また、縦結合部105は、S31で特定された表形式データの項目別リストに、S33で取得した出力項目に対応する項目が存在するか判断する(S34)。
 対応する項目が存在する場合(S34:YES)、縦結合部105は、S31で取得された項目別リストを、出力用の対応する項目別リストに登録する(S35)。ここで、縦結合の設定データ(例えば、図7B)において、複数の項目名が「+」で結合されている場合、出力用の項目別リスト1つに複数の項目別リストの要素を結合して登録する。一方、対応する項目が存在しない場合(S34:NO)、レコードの数だけ要素に「空」を登録した、出力用の項目別リストを登録する(S36)。出力項目に対応する項目が処理対象のファイルには存在しないため、ここでは、空の項目別リストが追加される。このとき、各要素内の値は、所定の区切記号(例えば、カンマやスペース等)で結合される。
 その後、縦結合部105は、処理対象の表形式データに、未処理の項目別リストが存在するか判断する(S37)。未処理の項目別リストが存在する場合(S37:YES)、S33の処理に戻る。一方、未処理の項目別リストが存在しない場合(S37:NO)、縦結合部105は、結合する表形式データに未処理のものが存在するか判断する(S38)。未処理の表形式データが存在する場合(S38:YES)、S31の処理に戻る。一方、未処理の表形式データが存在しない場合(S38:NO)、S39の処理に遷移する。なお、結合後の項目に対応する項目別データが存在しない場合は、レコードの数だけ要素に「空」を登録した、出力用の項目別リストを生成するようにしてもよい。
 S37までの処理によって、例えば図10Aに示した項目別リストから、図12Aに示すような出力用の項目別リストが生成される。図12Aの例では、縦結合の設定データに基づいて、結合される項目別リストの「L_Name」及び「F_Name」の要素が、出力用の項目別リストの「Name」にスペース区切りで結合されて登録されている。また、出力用の項目別リストとして、結合される項目別リストには存在しない「Office」を生成している。「Office」の項目別リストには、レコードの数だけ「空」が登録されている。また、S38までの処理によって、図12Aに示すような出力用の項目別リストが、結合する表形式データの分だけ生成される。例えば、図10Bに示した項目別リストから、図12Bに示すような出力用の項目別リストが生成される。図12Bの例では、結合する2つの表形式データの項目のうち、図10Aに示した「L_Name」及び「F_Name」の項目の結合と、図10Bに示した「Name」の項目とが、1つの項目「Name」に集約されている。
 その後、縦結合部105は、生成された出力用の項目別リストを、項目ごとに結合する(S39)。結合される複数の表形式データから生成された出力用の項目別リスト(図12A及び図12B)が、例えば図12Cに示すように結合される。図12Cでは、一方の項目別リストの要素と、他方の項目別リストの要素との和集合が生成されている。このとき、縦結合の設定データに基づいて、対応する項目は1つの項目別リスト(図12Cでは、「Name」)に登録される。以上で、縦結合処理を終了する。
<出力処理>
 次に、結合後の項目別データを表形式データとして出力する処理について説明する。図13は、出力処理の一例を示す処理フローである。
 出力データ生成部109は、結合された出力用の項目別リストを読み出し、出力用の行別リストを生成する(図13:S41)。例えば、まず、各レコードの値を要素として登録する行別リストを、レコードの数だけ生成及び初期化する。次に、出力用の項目別リストを読み出し、各要素をレコードの順序(すなわち、行番号)に対応する行別リストに新たな要素として登録する。このような処理を出力用の項目別リストのすべてについて行い、行別リストを生成する。例えば、図12Cに示した項目別リストから、図14Aに示すような行別リストが生成される。図14Aの例では、各要素が実線で囲われ、横方向に隣接する要素が、行別リストを表している。
 また、出力データ生成部109は、生成された出力用の行別リストを用いて、出力する表形式データの行リストを生成する(S42)。生成される行リストの要素は、出力用の行別リストに含まれる要素の間に区切記号を追加して1行に連結した値である。CSVファイルを出力する場合、出力データ生成部109は、区切記号としてカンマを各要素の間に追加する。例えば、図14Aに示すような行別リストから、図14Bに示すような行リストが生成される。
 次に、出力データ生成部109は、生成された行リストを用いて、表形式データを生成する(S43)。本ステップで生成される表形式データは、カンマ等の区切記号でフィールドが区切られ、改行でレコードが区切られたテキストデータである。ここでは、出力データ生成部109は、S42において生成された行リストの要素の各々を1行として、1つのファイルに結合する。例えば、図14Bに示した行リストから、図14Cに示すようなCSVファイルが生成される。なお、CSVファイルの他、既存の表計算ソフトで読込可能なファイルを生成するようにしてもよい。
 以上のように、ファイル読込処理、縦結合設定処理、項目別リスト生成処理、及び縦結合処理によれば、データ項目の異なる表形式データの和集合を生成することができる。また、例えばユーザが予め項目の対応付けを指定することにより、対応付けられた項目を、結合後の表形式データにおいて同一の列にそろえる(すなわち、集約する)ことができる。このような処理は、本実施形態において中間的に生成される項目別データを用いることで、効率的に処理することができる。
<横結合設定処理>
 次に、横結合処理及び集計処理について説明する。本実施形態に係る横結合処理とは、キー項目の値が所定の条件を満たす、複数のレコードを1つのレコードに統合する処理である。また、本実施形態に係る集計処理とは、キー項目の値が所定の条件を満たす、複数のレコードを集計する処理である。まず、横結合処理で用いられるキー項目を設定するための横結合設定処理について説明する。
 図15は、横結合設定処理の一例を示す処理フローである。本実施形態では、先に説明した縦結合後の表形式データを用いて、複数のレコードを1つのレコードに統合する処理を行う。よって、例えば、図7Aに示したような縦結合の設定データが予めデータ記憶部101に記憶されているものとする。
 まず、表示制御部104は、出力項目の一覧を生成してユーザ端末2へ送信し、ユーザ端末2の表示装置に表示させる(図15:S51)。本ステップでは、表示制御部104は、縦結合の設定データから出力項目を読み出し、ユーザがキー項目を指定するための一覧を生成する。例えば、各項目をパネル状にして表示し、ユーザがクリックしたり又は所定の領域へドラッグアンドドロップしたりしてキー項目を選択できるようにする。
 図16に、画面の一例を示す。図16の画面は、項目の一覧を表示するための項目一覧表示領域2001と、指定されたキー項目の一覧を表示するためのキー項目表示領域2002と、重複値の処理を選択するための重複値処理選択領域2003と、同一のフィールドに値を結合して表示する際の区切記号を選択するための区切記号選択領域2004とを含む。項目一覧表示領域2001には、縦結合後の表形式データの項目の一覧が、項目ごとパネル状に表示されている。
 また、設定処理部102は、ユーザ端末2からキー項目の指定を受け付ける(S52)。本ステップでは、ユーザが画面上で項目のパネルに対して所定の操作を行うことにより、設定処理部102はキー項目の指定を受け付ける。所定の操作とは、パネルのキー項目表示領域へのドラッグや、パネルのクリック等である。例えば、図16に示した画面において、項目一覧表示領域2001の各パネルをドラッグアンドドロップ可能とし、パネルがキー項目表示領域2002にドロップされた場合、設定処理部102は当該パネルに対応する項目をキー項目として受け付ける。また、表示制御部104は、画面上において、ドラッグされた項目のパネルの表示を、キー項目表示領域に移動させる。
 キー項目は複数指定できるようにしてもよい。このとき、キー項目表示領域2002において、指定された順に上から下へパネルが追加される。なお、パネルが追加される方向は上から下には限られず、その他の所定の方向であってもよい。また、ユーザがドラッグすることにより、キー項目表示領域におけるパネルの順序を入れ替えることができるようにしてもよい。ここで、キー項目の順序は、結合後のレコードをまとめる際の優先度を示す。すなわち、結合後のレコードは、キー項目の順序に基づいて、例えば、上位のキー項目の値が同一のレコードは下位のキー項目の値でソートされるように、複数キーによるソートができる。
 また、選択されたキー項目には、レコードを集約するための条件を設定する。すなわち、例えば、「完全一致」、「前方一致」、「後方一致」又は「中間一致」のような、名寄せを行う条件を設定する。さらに、当該キー項目についてデータクレンジング(標準化)を行うか否かを指定できるようにしてもよい。
 図17は、キー項目の設定を行うための画面の一例である。図17の画面には、キー項目の項目名と、「名寄せ判断」の選択肢3001と、「データクレンジング処理」を行うか否かの選択肢3002と、設定を登録するための「登録」ボタン3003が表示されている。例えば、図16のキー項目一覧に表示されたパネルをクリックすることにより、図17に示すような、当該パネルが示すキー項目の設定画面が表示される。
 「名寄せ判断」の選択肢3001には、名寄せを行う条件が選択肢として表示されている。本実施形態において「名寄せ」とは、表形式データに含まれる同一の実体に係るレコードをまとめる処理をいう。本実施形態では、キー項目の値の少なくとも一部が一致するレコードを集約する。名寄せを行うことで、例えば同一人物に関するレコードを特定することができ、集計結果がより精確になる。
 また、「データクレンジング処理」は、キー項目の値の記述形式を標準化する処理である。例えば電話番号を示す値が、「01-2345-6789」、「01(2345)6789」、「0123456789」等のように異なる記述形式で登録されている場合がある。このような値を標準化することにより、より精度の高い名寄せを行うことができるようになる。例示した電話番号の他、郵便番号、日付、法人名、数値(桁区切りの有無や単位の有無等)、氏名の異体字、住所等について、データクレンジングを行うことにより、記述形式の差異を吸収できる。データクレンジング処理については既存の技術を適用することができる。
 データクレンジングを併用した名寄せにより、例えば、(1)異体字で記述された「斉藤」、「斎藤」、「齋藤」、「齊藤」のいずれか、且つ(2)記述形式の異なる「東京都千代田区飯田橋99-99-99XXハイツ101号室」、「東京都千代田区飯田橋99-99-99-101」、「東京都千代田区飯田橋99丁目99番99号XXハイツ101号室」、「千代田区飯田橋99-99-99-101」等のいずれか、且つ(3)記述形式の異なるコード番号「1000523」、「1,000,523」、「壱百萬五百二十三」等のいずれかという条件を満たす、(1)~(3)の様々な組合せを含むレコードを、同一人物に関するレコードとして扱うことができるようになる。
 また、設定処理部102は、キー項目の設定が完了した場合、キー項目表示領域2002の表示を更新する(S53)。ここでは、キー項目のパネルが、条件の指定が完了したことを示す所定の表示態様に変更される。表示態様としては、背景色、文字色、書体、大きさ、又はこれらの変化パターン(背景色の点滅等)等が挙げられる。例えば、図16に示したキー項目に対して条件の指定が完了した場合、図18に示すようにキー項目のパネルの色を変更する。図18の画面では、条件の指定が完了したパネルの色が、「キー項目」のタイトルの背景色と同一の色に変更されている。なお、図16及び図18では、便宜上ハッチングのパターンで色を表している。同一のパターンで塗りつぶされた領域は、同一の色で塗りつぶされているものとする。
 その後、設定処理部102は、キー項目の入力が終了したか判断する(S54)。例えば、ユーザの操作により、図18の「データ出力」ボタンが押下されると、設定処理部102は、キー項目の入力が終了したものと判断する。入力が終了していない場合(S54:NO)、例えばS52の処理に戻り、設定処理部102は、さらにキー項目の指定を受け付ける。一方、入力が終了した場合(S54:YES)、設定処理部102は、データ記憶部101に設定を記憶させ、横結合設定処理を終了する(S55)。本ステップでは、横結合の設定データとして、「キー項目」及び「名寄せの条件」が設定される。さらに、「データクレンジング処理の要否」や、「重複する値の処理」、「区切記号の種類」等を設定してもよい。
<集計設定処理>
 次に、集計処理で用いられるキー項目及び集計項目を設定するための集計設定処理について説明する。図19は、集計設定処理の一例を示す処理フローである。本実施形態では、縦結合後の表形式データを用いて、レコードの値を集計する。よって、図7Aに示したような縦結合の設定データが予めデータ記憶部101に記憶されているものとする。
 まず、表示制御部104は、出力項目の一覧を生成してユーザ端末2へ送信し、出力項目の一覧をユーザ端末2の表示装置に表示させる(図19:S61)。本ステップの処理は、図15のS51と同様である。
 図20に、画面の一例を示す。図20の画面は、項目の一覧を表示するための項目一覧表示領域4001と、出力される表形式データに新しい項目を追加するための新規項目のパネル4002と、指定されたキー項目の一覧を表示するためのキー項目表示領域4003と、集計項目の一覧を表示するための集計項目表示領域4004とを含む。項目一覧表示領域には、縦結合後の表形式データの項目の一覧が、項目ごとパネル状に表示されている。
 また、設定処理部102は、ユーザ端末2からキー項目の指定を受け付ける(S62)。本ステップは、図15のS52とほぼ同様であり、ユーザが画面上で項目のパネルに対して所定の操作を行うことによって、設定処理部102はキー項目の指定を受け付ける。また、集計設定処理では、集計するレコードの条件として、キー項目の集計方法を選択させる。集計方法は、例えば、「完全一致」、「年別」、「月別」、「日別」、「曜日別」等の選択肢からユーザに指定させる。
 図21は、キー項目の設定を行うための画面の一例である。図20の画面には、キー項目の項目名5001と、「キー項目の集計方法」の選択肢5002とが表示されている。例えば、図20のキー項目一覧に表示されたパネルをクリックすることにより、図21に示すような、当該パネルが示すキー項目の設定画面が表示される。
 なお、「完全一致」が選択された場合、キー項目の値が完全一致するレコードが集約されて、後述する「集計項目」の値が求められる。また、「年別」、「月別」、「日別」、「曜日別」等の選択肢は、キー項目が日付を表す場合に有効である。それぞれ、所定の期間を単位として集計処理が行われる。
 また、設定処理部102は、キー項目の設定が完了した場合、キー項目表示領域の表示を更新する(S63)。本ステップは、図15のS53と同様であり、キー項目のパネルが、条件の指定が完了したことを示す所定の表示態様に変更される。例えば、図20に示したキー項目に対して条件の指定が完了した場合、図22に示すようにキー項目のパネルの色を変更する。なお、図20及び図22でも、便宜上ハッチングのパターンで色を表している。なお、キー項目の指定は、複数受け付けるようにしてもよい。キー項目を複数受け付ける場合の処理は、S54(図15)と同様である。
 また、設定処理部102は、集計項目の指定を受け付ける(S64)。ここでは、ユーザが画面上で項目のパネルに対して所定の操作を行うことによって、設定処理部102は集計項目の指定を受け付ける。例えば、図22に示した画面において、項目一覧表示領域4001の各パネルをドラッグアンドドロップ可能とし、パネルが集計項目表示領域4004にドロップされた場合、設定処理部102は当該パネルを集計項目として受け付けるようにする。また、表示制御部104は、例えば、図23に示すように、画面上において、ドラッグされた項目のパネルを、集計項目表示領域4004に移動させる。また、集計項目として、縦結合後の表形式データには存在しない項目を新たに生成することもできる。この場合、ユーザは、例えば、図22の左下に存在する「新規」のパネル4002を集計項目表示領域4004へドラッグする。新規項目については、後に詳述する。
 また、集計項目も、複数指定できるようにしてもよい。このとき、集計項目表示領域4004において、指定された順に上から下へパネルが追加される。なお、パネルが追加される方向は上から下には限られず、その他の所定の方向であってもよい。また、ユーザがドラッグすることにより、集計項目表示領域4004におけるパネルの順序を入れ替えることができるようにしてもよい。ここで、本実施形態では集計項目の順序に基づいて集計処理を行う。よって、下位の集計項目では、上位の集計項目の結果を用いて集計処理を行うことができる。
 また、集計項目には、項目の集計方法を設定する。例えば、値を区切記号で結合した文字列を生成する「結合」や値の出現回数を計数する「頻度」等の「文字集計」、又は「合計」や「平均」、「中央値」、「最頻値」、「最大値」、「最小値」、「分散」、「標準偏差」等の「数値集計(要約統計量)」がユーザによって選択される。
 図24は、集計項目の設定を行うための画面の一例である。図24の画面には、集計項目の項目名6001と、「項目の集計方法」の選択肢6002とが表示されている。例えば、図23の集計項目表示領域に表示されたパネルをクリックすることにより、図24に示すような、当該パネルが示すキー項目の設定画面が表示される。
 また、設定処理部102は、集計項目の設定が完了した場合、集計項目表示領域の表示を更新する(S65)。本ステップは、S63と同様であり、集計項目のパネルが、条件の指定が完了したことを示す所定の表示態様に変更される。例えば、図23に示したキー項目に対して条件の指定が完了した場合、図25に示すように集計項目のパネルの色を変更する。なお、図23及び図25でも、便宜上ハッチングのパターンで色を表している。以上のような集計項目の指定も、複数受け付けるようにしてもよい。
 その後、設定処理部102は、キー項目及び集計項目の入力が終了したか判断する(S66)。例えば、ユーザの操作により、図25の「データ出力」ボタンが押下されると、設定処理部102は、キー項目の入力が終了したものと判断する。入力が終了していない場合(S66:NO)、例えばS62の処理に戻り、設定処理部102は、さらにキー項目の指定を受け付ける。なお、S64の処理に戻り、設定処理部102は、集計項目の指定を受け付けるようにしてもよい。図19の処理フローでは、キー項目の指定及びキー項目表示領域の表示更新(S62及びS63)と、集計項目の指定及び集計項目表示領域の表示更新(S64及びS65)とを便宜的に連続する処理として説明したが、それぞれ独立した処理である。したがって、ユーザの操作に基づき、任意の順序で、それぞれ任意の回数実行される。一方、入力が終了した場合(S66:YES)、設定処理部102は、データ記憶部101に設定を記憶させ(S67)、集計設定処理を終了する。S67では、集計処理の設定データとして、例えば、「キー項目」及び「キー項目の集計方法」、並びに「集計項目」及び「項目の集計方法」が設定される。
<対照群生成処理>
 横結合処理又は集計処理を行う場合、上でも述べた通り、まず縦結合処理を行う。すなわち、図14Cに示したような、複数の表形式データの和集合を処理対象とする。また、横結合処理又は集計処理においても、処理対象の表形式データに対して図8に示した項目別リスト生成処理を行い、項目別リストを生成する。項目別リスト生成処理については、図8に示した通りであるため、説明を省略する。例えば、図14Cに示した表形式データから、図12Cに示したような項目別リストが生成される。
 また、横結合処理及び集計処理の処理過程で、項目別リストを用いて集約するレコードを特定するためのデータである「対照群」が、中間的に生成される。本実施形態の対照群とは、キー項目の値が所定の条件を満たすレコード(行)を、行番号の集合で表したものである。対照群生成処理では、例えば、キー項目の値が完全一致するレコードの行番号の集合や、日付形式で記述されたキー項目の値が所定の期間内に属するレコードの行番号の集合が生成される。そして、表形式データ処理装置1は、後述する横結合処理又は集計処理において、対照群を用いてレコードを集約する。
 図26及び27は、対照群生成処理の一例を示す処理フローである。対照群生成部106は、横結合の設定データ又は集計処理の設定データをデータ記憶部101から読み出し、キー項目の項目別リストを1つ取得する(図26:S71)。例えば、図14Cに示した表形式データのうち、「Name」がキー項目に指定されている場合、図12Cに示した項目別リストのうち、左から3番目(項目名:Name)の項目別リストが取得される。
 また、対照群生成部106は、値と行番号のリストとを対応付けて保持する、Key-Value形式のマップを生成する(S72)。Keyには、キー項目の値が登録され、Valueには、行番号を要素として保持するリストが登録される。
 次に、対照群生成処理部106は、クレンジング処理を行う(S73)。本ステップは、例えば、横結合の設定データ又は集計処理の設定データにおいて、クレンジング処理を行う旨の指定がされている場合に行われる。本ステップでは、電話番号、郵便番号、日付、法人名、数値(区切記号の有無や単位の有無等)、氏名の異体字、住所等について、値の記述形式を変更して統一する。これにより、名寄せのような、レコードを集約する処理の精度が向上する。
 また、対照群生成部106は、キー項目の項目別リストから要素を1つ取得する(S74)。本ステップでは、キー項目の値が、レコードの登録順(行番号順)に1つずつ読み出される。そして、対照群生成処理部106は、読み出された要素の値が対照群に存在するか判断する(S75)。ここでは、対照群生成処理部106は、読み出された要素の値が属すべき集合がすでに生成されているか判断する。図12Cの例では、例えば「Name」の値が読み出され、値が同一の集合がすでに存在するか判断される。読み出された要素の値が対照群に存在しない場合(S75:NO)、対照群生成部106は、読み出された要素の値と関連付けて、当該要素の行番号をリストに登録する(S76)。一方、読み出された要素の値が対照群に存在する場合(S75:YES)、対照群生成部106は、合致する値と関連付けられた行番号のリスト(すなわち、集合)に、当該要素の行番号を追加する(S77)。
 その後、対照群生成部106は、キー項目の項目別リストに未処理の要素が存在するか判断する(S78)。未処理の要素が存在する場合(S78:YES)、S74の処理に戻る。キー項目を集約する条件が「完全一致」であり、図12Cの左から3番目に示した「Name」の項目別リストについて処理を行う場合、1行目から3行目までは同一の値が対照群に存在しないため、新たな行番号の集合が生成される。4行目の「Fujita Tomoko」は1行目と同一である。よって、S74において4行目が取得された場合、S75において合致する値が対照群に存在すると判断される。同様に5行目は、2行目と同一の集合に追加される。図12Cの左から3番目の項目別データからは、図28Aに示すような対照群が生成される。
 また、対照群生成部106は、未処理のキー項目が存在するか判断する(S79)。未処理のキー項目が存在する場合(S79:YES)、処理は図16のS71に戻る。一方、未処理のキー項目が存在しない場合(S79:NO)、対照群生成部106は、対照群は1種類であるか判断する(S80)。なお、ここまでの処理で、キー項目の数だけ対照群が生成されている。また、対照群の生成において、図28Aに示したような値と行番号の集合との組み合わせを保持していたが、ここでは値との対応付けを削除し、行番号の集合のみを処理の対象とする。
 対照群が複数存在する場合(S80:NO)、対照群生成部106は、2つの対照群を取得する(S81)。例えば、対照群に含まれる集合の数が少ない順に2つの対照群を取得する。また、対照群生成部106は、取得した2つの対照群の積集合を生成する(S82)。そして、対照群生成部106は、取得した2つの対照群を、生成した積集合で置換する(S83)。その後、S80の処理に戻る。一方、S80において対照群が1種類であると判断された場合(S80:YES)、対照群生成部106は、対照群生成処理を終了する。
 以上の対照群生成処理により、対照群生成部106は、図28Bに示すような、値とは対応付けされていない行番号の集合を、データ記憶部101に記憶させる。なお、後述する横結合処理や集計処理では、行番号の集合がわかればレコードを集約することができる。
 また、出力する表形式データにおいてレコードをソートする場合は、対照群生成処理において行番号の集合をソートしておく。仮に、「英字」及び「数字」という2つのキー項目を有する表形式データから、図29Aに示すような行番号の集合が生成されたとする。ここでは、「英字」の値が「A」、「B」及び「C」である行番号の集合が、「英字」の昇順にソートされている。また、「数字」の値の昇順に行番号の集合をソートすると、図29Bのような行番号の集合が生成されたものとする。図29Bでは、「数字」の値が「0」及び「1」である行番号の集合が生成されている。このようなデータに対して、キー項目が「英字」、「数字」の順に、複数キーでのソートを行う場合、図29Cに示すような積集合が生成される。図29Cの例では、「英字」及び「数字」の値が、「A」且つ「1」、「B」且つ「1」、「C」且つ「0」である行番号の集合が生成されている。なお、キー項目が「数字」、「英字」の順に、複数キーでのソートを行う場合は、図29Dに示すような積集合が生成される。図29Dの例では、「数字」及び「英字」の値が、「0」且つ「C」、「1」且つ「A」、「1」且つ「B」である行番号の集合が生成されている。このようにソートされた順序を保持しておけば、行番号の集合と値との対応付けを削除しても、行番号の集合とその順序に基づいてレコードをソートしつつ集約することができる。
 以上のように、対照群生成処理では、最終的に1つの対照群が生成され、データ記憶部101に記憶される。対照群の積集合を求めることにより、複数のキー項目が指定された場合でも、複数のキー項目によって特定されるレコードの集合ごとにレコードを集約することができるようになる。
<横結合処理・集計処理>
 対照群が生成された後、横結合処理又は集計処理が行われる。横結合処理は横結合部107によって実行され、集計処理は集計部108によって実行されるものとする。
 図30は、横結合・集計処理の一例を示す処理フローである。まず、横結合部107又は集計部108は、出力用の項目別リストを生成し、初期化する(図30:S91)。ここでは、横結合の設定データ又は集計処理の設定データに基づいて、出力項目の数だけ項目別リストを生成する。
 また、横結合部107又は集計部108は、処理対象の項目別リストを1つ取得する(S92)。横結合処理の場合、図12Cに示したような、縦結合後の項目別リストから項目別リストを1つ取得する。集計処理の場合、キー項目及び集計項目に対応する項目別リストから、1つ取得する。また、横結合部107又は集計部108は、対照群から集合を1つ取得する(S93)。ここでは、図28Aに示したような対照群から行番号の集合を1つ取得する。
 そして、横結合部107又は集計部108は、値を結合するか判断する(S94)。ここでは、横結合を行う場合、又は項目の集計方法として「結合」が指定されている場合、値を結合すると判断される。一方、項目の集計方法として、「合計」、「平均」、「中央値」、「最頻値」、「最大値」、「最小値」、「分散」、「標準偏差」等が指定されている場合、値を結合しないと判断される。
 値を結合する場合(S94:YES)、横結合部107又は集計部108は、S93で取得した集合に含まれる行番号に対応する要素を、S92で取得した項目別リストから取得し、例えば所定の区切記号で結合する(S95)。なお、図16の重複値処理選択領域に示したように、横結合処理においてはキー項目が所定の条件を満たすレコードを1つのレコードにまとめる場合、重複を除いて値を結合するようにしてもよいし、重複を許して値を結合するようにしてもよい。また、横結合処理において、キー項目が所定の条件を満たすレコードを1つのレコードにまとめるのではなく、例えば出現頻度の順にソートするようにしてもよい。
 一方、S94において値を結合しないと判断された場合(S94:NO)、集計部108は、値を算出する(S96)。ここでは、横結合部107又は集計部108は、S93で取得した集合に含まれる行番号に対応する要素を、S92で取得した項目別リストから取得し、項目の集計方法に基づいて、合計したり平均を算出したりする。
 S95又はS96の後、横結合部107又は集計部108は、結合した値又は集計した値を出力用の項目別リストに新たな要素として登録する(S97)。そして、横結合部107又は集計部108は、対照群に未処理の集合が存在するか判断する(S98)。未処理の集合が存在する場合(S98:YES)、S93の処理に戻る。一方、未処理の集合が存在しない場合(S98:NO)、横結合部107又は集計部108は、未処理の項目が存在するか判断する(S99)。横結合処理の場合、図12Cに示したような、縦結合後の項目別リストに、未処理の項目別リストが存在するか判断する。集計処理の場合、キー項目及び集計項目に対応する項目別リストに、未処理のものが存在するか判断する。未処理の項目が存在する場合(S99:YES)、S92の処理に戻る。一方、未処理の項目が存在しない場合(S99:NO)、横結合部107又は集計部108は、横結合・集計処理を終了する。
 以上のように、本実施形態では対照群を用いて集約するレコードを特定する。上でも述べたように、対照群の生成は、キー項目の値の各々について、すでに生成された集合(対照群の集合のいずれか)に属するか否かを判断することにより行われる。キー項目の値の各々について、キー項目の他の値の各々と比較するような処理を行う必要がないため、対照群の生成は比較的高速に行うことができる。また、対照群を生成した後は、各集合と当該集合に属するレコードの値との関連付けは保持する必要がない。すなわち、対照群の各集合は、行番号のみを保持している。このような対照群を記憶するために必要なメモリの容量は比較的少なくなる。
<新規項目生成処理>
 次に、集計処理において新しい項目の生成が指示された場合の処理について説明する。例えば、図23に示した画面において集計項目表示領域に「新規」のパネルが追加された場合、図19のS64において、設定処理部102は、値の係数、計算式の入力、又は条件式の入力をユーザ端末2から受け付ける。図31は、新規項目の設定画面の一例を示す図である。例えば、図23において、集計項目表示領域に「新規」パネルが追加され、追加された当該パネルがクリックされると、ユーザ端末2の表示部には、図31に示すような画面が表示される。
 図31の例では、新規項目の名称7001と、「キーカウント」、「計算」及び「条件」の各ボタン7002とが表示されている。「キーカウント」が押下されると、キー項目含まれる同一の値ごとに個数が計数される。「計算」が押下されると、ユーザ端末2には、計算式を入力するための画面が表示される。図32は、計算式を入力するための画面の一例を示す図である。図32の画面には、集計項目の一覧を表示するための領域8001と、演算式又は固定値を入力するためのテンキー8002と、計算式を項目のパネル及びテンキーのパネルで表示するための計算式の表示領域8003と、計算式を文字列で確認するための確認用計算式の表示領域8004とを有する。集計項目の一覧には、図25等の集計項目表示領域に追加されたパネルが表示されている。また、本実施形態では、当該新規項目よりも上位に登録されている項目を用いて計算式を作成することができる。すなわち、上位に登録されている他の新規項目の計算結果を用いて、さらに新規項目を定義することができる。
 また、「条件」が押下されると、ユーザ端末2には、条件式を入力するための画面が表示される。図33は、条件式を入力するための画面の一例を示す図である。図33の例では、集計項目の一覧9001と、条件を定義する領域9002と、条件に合致する場合の出力値を設定する領域9003と、条件に合致しない場合の出力値を設定するための領域9004とが表示されている。ユーザは、例えば、集計項目と任意の値との大小関係が指定された条件を満たす場合と満たさない場合とについて、出力する値を設定することができる。また、条件式は「AND」(論理積)又は「OR」(論理和)で接続して複数定義することができる。条件式の場合も、当該新規項目よりも上位に登録されている集計項目を用いてさらに条件式を作成することができる。
 新規項目を設定する場合、集計項目の設定データには、「項目の集計方法」として、頻度を係数する項目、計算式又は条件式が設定される。
 図34は、新規項目生成処理の一例を示す処理フローである。まず、集計部108は、集計処理の設定データを読み出し、新規項目を1つ取得する(図34:S101)。また、集計部108は、新規項目の集計処理が条件式又は計算式であるか判断する(S102)。条件式又は計算式である場合(S102:YES)、集計部108は、対照群の集合を1つ取得する(S103)。
 そして、集計部108は、条件式の判断又は計算式の算出を行う(S104)。また、集計部108は、条件式の判断結果又は計算式の算出結果を出力用の項目別リストに新たな要素として登録する(S105)。そして、集計部108は、未処理の集合が対照群に存在するか判断し(S106)、未処理の集合が存在する場合(S106:YES)、S103の処理に戻る。一方、未処理の集合が存在しない場合(S106:NO)、S111の処理に遷移する。一方、S102において、条件式又は計算式でないと判断された場合(S102:NO)、集計部108は、対照群の集合を1つ取得する(S107)。そして、集計部108は、対照群の集合に含まれる値の数を計数する(S108)。そして、集計部108は、出力用の項目別リストに新たな要素として登録する(S109)。
 その後、未処理の集合が存在するか判断する(S110)。未処理の集合が存在する場合(S110:YES)、S107の処理に戻る。一方、未処理の集合が存在しない場合(S110:NO)、又はS106において未処理の集合が存在しないと判断された場合(S106:NO)、集計部108は、未処理の新規項目が存在するか判断する(S111)。未処理の新規項目が存在する場合(S111:YES)、S101の処理に戻る。一方、未処理の新規項目が存在しない場合(S111:NO)、集計部108は、新規項目生成処理を終了する。
 例えば、図12Cの項目別リストのうち、「Name」をキー項目として横結合する場合、図28Bに示す対照群が生成される。図28Bの対照群に基づいて項目別リストの要素を集約すると、1行目及び4行目の要素、2行目及び5行目の要素、並びに3行目の要素が横結合後の項目別リストの要素になる。図35Aに、横結合後の項目別データの例を示す。図35Aの各項目別リストのうち、1行目の要素は、図12Cの1行目及び4行目の要素を集約したものである。同様に、図35Aの2行目の要素は、図12Cの2行目及び5行目の要素を集約したものである。図35Aの3行目の要素は、図12Cの3行目の要素に相当する。
 また、横結合後の項目別リストにおいて、重複する値をフィールド内に残す場合は、図35Bのような項目別リストが生成される。図35Bの例では、「Name」の項目別リストの1行目及び2行目の要素に、それぞれ同一の値が2つずつ保持されている。キー項目以外の項目についても、結合後の項目別リストにおいて1つの要素に複数の値を結合して登録してもよいし、重複を除いて登録してもよい。さらに、重複を除いた上で当該値が出現した頻度を示す数値を登録するようにしてもよい。
 また、図示は省略するが、集計処理を行う場合は、キー項目及び集計項目について項目別リストが生成される。そして、対照群の集合ごとに、設定された集計方法に基づいて集計される。
 以上のようにして、横結合後の項目別リスト、又は集計処理後の項目別リストがすべて生成される。これらの項目別リストを表形式データとして出力するためには、図13を用いて説明した出力処理を行う。
<変形例>
 本実施形態では、項目別リスト生成処理によって、表形式データを項目別リストに分解して扱う。上記の説明では、縦結合処理から出力処理を行うパターン、及び縦結合後の表形式データを用いて横結合・集計処理から出力処理を行うパターンについて説明した。しかし、本実施形態に係る処理のパターンはこれらに限られない。例えば項目別リストを用いて、縦結合処理、横結合処理、集計処理の順に処理を行ったり、このようにして生成した複数の表形式データを用いてさらに縦結合処理を行ったりすることができる。
 本実施形態では、表形式データ処理装置1が、ネットワーク3を介して各ユーザ端末2へサービスを提供するという構成を説明したが、このような態様には限られない。例えば、表形式データ処理プログラムをインストールしたユーザ端末2が、ネットワーク3への接続を行うことなく、本実施の形態に係る処理を実行するようにしてもよい。この場合、例えば、表形式データ処理装置は入力I/Fを介してユーザからのデータ操作の指示を受け付ける。また、表形式データ処理装置は、出力I/Fを介してモニタ等の出力装置に結果を出力する。
 また、本実施形態で示した処理フローは例示であり、処理結果が変わらない限りにおいて処理の順序を変更したり、並列に処理を行うようにしてもよい。画面の例についても適宜レイアウト等を変更することができる。
<<バッチ処理に係る実施形態>>
 本実施形態に係る装置は、いわゆる表形式データを処理する。表形式データとは、例えば、カンマやタブ、スペース等の区切記号(すなわち、「デリミター」)によって要素(「フィールド」、「列」、「項目」、「属性」又は「値」とも呼ぶ)が区切られ、改行によってレコード(「行」とも呼ぶ)が区切られたテキストデータである。本実施形態では、表形式データのうち、先頭から所定数の行をタイトル行として扱う。すなわち、先頭から所定数の行に含まれる要素を、フィールド名(「列名」、「項目名」、「属性名」等とも呼ぶ)として扱う。このとき、空の行があれば自動的に削除等するようにしてもよい。また、その他の行をデータレコードとして扱う。そして、データレコードに含まれる要素(「値」とも呼ぶ)を結合処理や集計処理等の対象とする。
 具体的には、本実施形態に係るプログラムは、表形式データに含まれる要素を配列(リスト)に保持し、後述する様々な処理を行う。また、本実施の形態に係る表形式データは、1つの要素としてさらに入れ子状に配列を保持する場合もある。すなわち、表形式データの1つのフィールドに、複数の値を保持できる構成とする。また、本実施の形態では、要素を基本的に文字列として扱う。ただし、集計処理等においては要素が数値、日時等であるか判断し、所定の形式でない要素を検出した場合はエラーメッセージを出力するようにしてもよい。
<機能構成>
 図36は、表形式データを処理する表形式データ処理装置の一例を示す機能ブロック図である。本実施形態に係る表形式データ処理装置4は、データ記憶部401と、入出力部402と、制御部403と、縦結合部404と、横結合部405と、集計部406と、グループ化部407と、検索部408と、外部連携部409と、バッチ処理部410とを有する。
 データ記憶部401は、例えば、本実施形態で処理の対象となる表形式データ、処理の内容を示すスクリプトデータ、処理結果として生成される表形式データ、その他処理において中間的に生成されるデータを保持する。また、本実施形態に係る処理を実行するための設定も記憶される。本実施の形態では、CSVデータが、表形式データ処理装置4のデータ記憶部401に予め記憶されているものとする。
 入出力部402は、データ記憶部401に記憶されている表形式データをユーザの指定に基づいて読み出したり、処理結果として生成される表形式データをデータ記憶部401に書き出したりする。制御部403は、ユーザの操作に基づき、縦結合処理、横結合処理、集計処理、グループ化処理、検索処理、外部連携処理等といった処理(プロセスとも呼ぶ)を1つ以上用いて、プロセスを順に実行する処理であるジョブを定義する。なお、ジョブの定義に基づいて、縦結合部404、横結合部405、集計部406、グループ化部407、検索部408、外部連携部409等が処理を実行する。また、ジョブの定義は、一連の処理を実行するためのスクリプトとして、例えばXML(Extensible Markup Language)形式で保存される。なお、ここではプログラムのソースコード自体でなく、本実施形態に係るプログラムが読み込む設定データを「スクリプト」と呼んでいる。
 縦結合部404は、1以上の表形式データに含まれるレコードを1つの表形式データに統合する処理(「縦結合処理」と呼ぶ)を行う。また、縦結合処理を実行するための設定をユーザの操作によって受け付ける。横結合部405は、例えばキー項目の値が所定の条件を満たす、複数の表形式データのレコードを1レコードに結合する処理(「横結合処理」と呼ぶ)を行う。また、横結合処理を実行するための設定をユーザの操作によって受け付ける。
 集計部406は、設定に基づいて、値を数値として集計したり、値を文字列として1つのフィールドに統合したりする処理を行う。グループ化部407は、表形式データに含まれる値を所定のグループに分け、クロス集計を行う。また、クロス集計された状態の表形式データを、条件に従って分割する処理(グループ化解除)を行う。なお、横結合部405、集計部406、グループ化部407を総称して本発明における集約部とも呼ぶ。
 検索部408は、所定の検索条件に基づいて表形式データからレコードを抽出する。外部連携部409は、本実施形態に係る処理を行うプログラム以外のアプリケーションプログラムを起動させる。バッチ処理部410は、制御部403が定義したジョブを1つ以上用いて、ジョブを順に実行する処理であるバッチ処理を定義する。なお、バッチ処理の定義に基づいて、所定の日時に所定のジョブが所定の順序で起動される。なお、機能の詳細については、後述する。
<装置構成>
 表形式データ処理装置4も、図3に示すようなコンピュータである。図3に示すコンピュータ1000は、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、通信IF(Interface)1004、入出力IF(Interface)1005、ドライブ装置1006、通信バス1007を備えている。CPU1001は、プログラム(「ソフトウェア」又は「アプリケーション」とも呼ぶ)を実行することにより本実施の形態に係る処理を行う。主記憶装置1002は、CPU1001が読み出したプログラムやデータをキャッシュしたり、CPUの作業領域を展開したりする。主記憶装置は、具体的には、RAM(RandomAccess Memory)やROM(Read Only Memory)等である。補助記憶装置1003は、CPU1001により実行されるプログラムや、本実施の形態で用いる設定情報などを記憶する。補助記憶装置1003は、具体的には、HDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等である。主記憶装置1002や補助記憶装置1003は、表形式データ処理装置4のデータ記憶部401として働く。通信IF1004は、他のコンピュータとの間でデータを送受信する。通信IF1004は、具体的には、有線又は無線のネットワークカード等である。表形式データ処理装置4は、通信IF1004を介してネットワークに接続されていてもよい。入出力IF1005は、入出力装置と接続され、ユーザから操作を受け付けたり、ユーザへ情報を提示したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。ドライブ装置1006は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。そして、以上のような構成要素が、通信バス1007で接続されている。なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素(例えば、通信IF1004、ドライブ装置1006等)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置1006で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置1003、通信IF1004などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。そして、CPU1001がプログラムを実行することにより、図3に示したコンピュータを図36に示した表形式データ処理装置4として働かせる。
<機能の詳細>
 次に、表形式データ処理装置4の機能について説明する。図37は、本実施形態に係るジョブの概略図である。表形式データ処理装置4は、フォーマット(すなわち、列や列の名称といった表形式データの構成)の異なる複数の表形式データから、指定した条件のデータを抽出し、縦横自在に結合を行うことができる。また、横方向の結合をする際、データクレンジングを行うことにより、結果の精度を上げることができる。結合処理の他、集計や検索等も行うことができ、設定したスケジュールでこれらの処理を連携させて実行することもできる。なお、作成する表形式データは新たなファイルとして出力し、入力された表形式データは更新しない方が、例えばユーザが試行錯誤しつつ処理を繰り返す上では好ましい。これらの機能の設定は、例えばXML形式で保存することができる。
<縦結合>
 縦結合とは、例えばデータフォーマットの異なる複数の表形式データ(入力データ)に含まれるレコードを統合し、新たな表形式データ(出力データ)を生成する処理である。図38及び図39は、縦結合処理の入力データの一例である。図38は、「社員交通費清算.csv」というファイル名の表形式データであり、8件のレコードを含んでいる。図39は、「営業経費.csv」というファイル名の表形式データであり、8件のレコードを含んでいる。図38及び図39の列名及び順序は異なっているが、2つの表形式データは内容的に対応する項目を一部に含んでいる。また、図40は、縦結合処理の出力データの一例である。図40の表形式データは、図38の8件及び図39の8件に対応するレコードを含んでいる。すなわち、縦結合部404は、入力データに含まれるレコードを縦方向に結合(積み重ね)する。さらに、図40においては、所定の列同士が対応付けられている。また、図38における列「名前」は、図39における列「lastName」及び列「FirstName」の結合と対応付けられている。なお、入力される表形式データは複数でなく1つであってもよい。この場合、出力される表形式データの列名を変更することはできるが、データレコードの要素は入力データと変わらない。なお、縦結合処理は、縦結合部404によって実行される。
 図41は、縦結合の設定画面(縦結合列編集画面)の一例を示す図である。図41のテーブルは、「CSVファイル名」の列と、各CSVファイルに含まれる列の対応付けを示す列(「番号」、「日付」、「名前」・・・)とを含んでいる。図41の上段に表示されている列の名称(「番号」、「日付」、「名前」・・・)は、出力ファイルの列名を表している。すなわち、図41において同一の列に表示されている各CSVファイルの列は、出力ファイルにおいて対応付けられている。なお、出力ファイルの列名は、ユーザが変更することができる。また、図41に示す列の順序は、出力ファイルにおける列の順序を表している。「名前」の列のように、一方のCSVファイルにおける複数の列の結合を、他方のCSVファイルにおける1つの列に対応付けることもできる。また、他方のCSVファイルのいずれの列とも対応付けられない列が存在してもよく、入力ファイルの少なくとも一部の列は出力ファイルに出力されなくてもよい。また、3つ以上のCSVファイルを対応付けることも可能である。
 また、図41に示した縦結合列編集画面において「ベースファイル選択」ボタンが押下されると、図42に示すような縦結合ベースファイル選択画面が表示される。図42の画面では、「CSVファイル名」の列に、読み出されたCSVファイルの名称が表示される。また、「データサイズ」の列には、CSVファイルのファイルサイズが表示される。「日付」の列には、CSVファイルの更新日が表示される。「選択」の列のチェックボックスには、縦結合の基準とするCSVファイルにユーザがチェックを入れる。本実施形態では、基準とするCSVファイルの属性名を用いて所定の優先順位に従い、出力データの属性名を設定するものとする。
 また、図41の画面において「編集」ボタンが押下されると、操作メニューが表示される。操作メニューは、「編集」、「削除」、「右側に移動」、「左側に移動」、「右側に属性を追加」、「左側に属性を追加」、「キャンセル」といったメニューを含む。ユーザが「編集」を選択すると、図43に示すような表示属性抽出設定画面が表示される。表示属性抽出設定画面については、後述する。「削除」を選択すると、当該列が削除される。「右側に移動」を選択すると、当該列が右隣りと入れ替わる。「左側に移動」を選択すると、当該列が左隣りと入れ替わる。「右側に属性を追加」を選択すると、当該列の右側に新たな列が1つ追加される。「キャンセル」を選択すると、メニューの選択が中止される。
 また、縦結合列編集画面では、設定の状態に応じてフィールドの色が変更されるようにしてもよい。例えば、薄紫色は、新しい属性名と同一であり、表示属性抽出設定画面で個別に属性指定をしていない状態を示す。また、クリーム色は、表示属性抽出設定画面で個別に属性指定を行った状態を示す。さらに、オレンジ色は、表示属性抽出設定画面でCSVファイル選択を解除した状態を示す。そして、白色は、表示属性抽出設定画面で新しい属性名と一致する属性名がCSVファイル中に存在しない状態を示す。なお、プロセス復元をした場合は、新規プロセス作成時に薄紫色であったパネルは、クリーム色となる。
 また、図41の操作メニューから「編集」が選択された場合、図43に示すような表示属性抽出設定画面が表示される。図43の画面は、「新しい属性名」のテキストボックス、「CSVファイル名」の欄、「CSVファイルの属性名」のチェックボックス、「CSVファイルの内容」の行、設定を保存する「設定」ボタンが含まれている。「新しい属性名」のテキストボックスには、属性名が表示される。新しい属性名は、ユーザが修正できる。「CSVファイル名」の欄には、CSVファイル名が表示される。「CSVファイルの属性名」のチェックボックスは、個別に属性の関連付けを行う場合にユーザがチェックする。なお、例えば、「都道府県」及び「市区町村」の2つの属性を結合して1つの属性としたい場合、「都道府県」と「市区町村」とにチェックをする。「CSVファイルの内容」の行には、CSVファイルのデータレコードの1行目が表示される。表示属性抽出設定画面には、以上のような情報が、CSVファイルの数だけ表示される。また、縦結合の設定として、列同士の対応付け等、図41から図43を用いてユーザが設定した内容がデータ記憶部401に記憶される。
<横結合>
 横結合とは、所定の列に含まれる要素の集合に基づいてレコードを統合(集約とも呼ぶ)し、新たな表形式データを生成する処理である。具体的には、例えば縦結合等で得られた1つの表形式データを処理対象として、ユーザが指定したキー属性の値に基づきレコードを横方向に結合する。後述するデータクレンジング機能を用いることで、住所や名前といった要素の集合を特定する際に、表記の揺れを吸収して処理を行うことが可能である。また、データ欠損、重複データの確認、データ品質のチェック等を行うこともできる。
 図44は、横結合の処理対象となる表形式データ(入力データ)の一例である。図44は、図45及び図46に示すような表形式データを用いて縦結合処理したものである。図44では、図45の「会社名」及び図46の「会社」という項目が1つの列に揃えられている。その他の項目は、対応付けされておらず、図44の一部のフィールドは空になっている。横結合では、キー属性の値が同一である複数のレコードを1レコードにまとめ(「名寄せ」とも呼ぶ)、キー以外の属性については複数のレコードに含まれていた値を1つのフィールドにデリミター又は改行で区切って列挙するようにしてもよい。この場合、1つのフィールド内に同一の値が複数存在するときは、重複を除くようにしてもよいし、重複を除かないようにしてもよい。また、横結合では、いわゆるマスタデータにあたる表形式データを用いて、他の表形式データに存在しない項目のフィールドを補完(「自動補完」とも呼ぶ)するようにしてもよい。図44の属性「会社」をキー属性として、キー属性の値が同一(完全一致)のレコードを1行にまとめると、図47のようになる。図47の例では、キー属性の値が同一のレコードを基準として、図46にない「社員数」の列を、いわゆるマスタデータである図45の要素で補完している。なお、補完の処理は、縦結合を行う際、補完元となる属性を左側に配置しておくものとし、表型データ上の優先レコード(マスタデータ)を判別する。また、マスタデータがキー属性で一意に特定される場合に、優先レコードの内容から補完を実行可能とする。最後に、優先レコードは削除される。なお、横結合のキー属性は、標準化(データクレンジング)を行うようにしてもよい。例えば、値に含まれる法人名が「株式会社」、「(株)」、「カ)」等である場合に、同一として扱うことができる。また、「完全一致」の他、「前方一致」、「後方一致」、「中間一致」等の場合に同一であると判断するようにしてもよい。
 図48及び図49は、横結合の設定を行う画面の一例を示す図である。図48の画面(横結合画面とも呼ぶ)は、「属性一覧」と、「キー属性」と、「重複する値の処理」と、「値の間の接続因子」とを指定するための領域を含む。「属性一覧」の領域には、入力ファイルである表形式データに含まれる属性の一覧が表示される。表示されている属性のパネルを「キー属性」の領域へドラッグアンドドロップすることにより、ユーザは「キー属性」を指定できる。なお、キー属性の領域に複数のキー属性が表示されている場合、ユーザはパネルをドラッグしてキー属性の順序を入れ替えることもできる。
 また、キー属性の指定の詳細は、図49のような画面(横結合キー設定画面とも呼ぶ)を介して行う。図49の画面は、「名寄せ判断」と、「データクレンジング処理」とを指定するための領域を含む。「名寄せ判断」は、「完全一致」、「中間一致」、「前方一致」又は「後方一致」から、ユーザがいずれかをクリックすることで選択される。ここで、キー属性を複数指定する場合、各パネルの名寄せ判断の設定に関わらず、「完全一致」として動作するものとする。また、データクレンジングを行う場合は、ユーザは「標準化(データクレンジング)をする」のチェックボックスにチェックし、プルダウンメニューからデータクレンジングの種類を選択する。図49の例では、「法人名」が選択されている。
 また、図48に示すように、ユーザは「重複する場合の処理」について、「1行にまとめ且つ重複を除く」、「1行にまとめ且つ重複を除かない」、「1行にまとめず頻度でソートする」、「1行にまとめず自動補完する」のいずれかをクリックして選択できる。さらに、1行にまとめる場合は、「値の間の接続因子」について、キー属性以外の属性について1つのフィールドにまとめられる複数の要素を区切る記号を選択する。選択肢としては、「カンマ」、「スラッシュ」、「改行」及び「スペース」がある。図48及び図49を用いて説明したような項目が、横結合処理の設定情報としてデータ記憶部401に記憶される。なお、図48や図49の設定画面において、パネルの色が設定の状態を表すようにしてもよい。例えば、水色は、未設定の状態を表す。また、紫色は、横結合キー設定画面において設定済の状態を表す。また、横結合の設定として、図48及び図49の画面を介してユーザが指定した内容が、データ記憶部401に記憶される。
 ここで、図50から図59を用いて、「重複する値の処理」及び「値の間の接続因子」別の出力例を説明する。例えば、図50に示すような社員の交通費清算のデータを入力データとし、「血液型」をキー属性として横結合するものとする。重複を除き且つ値の間の接続因子をカンマとする出力例は、図51のようになる。同様に、重複を除き且つ接続因子をスラッシュとする出力例は、図52のようになる。また、重複を除き且つ接続因子を改行とする出力例は、図53のようになる。重複を除き且つ接続因子をスペースとする出力例は、図54のようになる。また、重複を除かず且つ接続因子をカンマとする出力例は、図55のようになる。同様に、重複を除かず且つ接続因子をスラッシュとする出力例は、図56のようになる。また、重複を除かず且つ接続因子を改行とする出力例は、図57のようになる。そして、重複を除かず且つ接続因子をスペースとする出力例は、図58のようになる。さらに、1行にまとめず且つ頻度ソートを行う場合の出力例は、図59のようになる。
<クレンジング及びユーザ定義辞書>
 横結合や後述する集計、グループ化において、標準化(データクレンジング)を行うことができる。標準化は、揺れのある表記に対して名寄せを行う。例えば、「名寄せ判断」が「完全一致」を選択した場合に指定する。データクレンジングの方法として、電話番号、郵便番号、日付、法人名、数値、和文解析、英文解析、氏名、住所、ユーザ辞書のいずれかを選択することができる。
 電話番号は、「03-1234-5678」、「03(1234)5678」、「0312345678」といった表記の違いを同一であるものとして扱う。郵便番号は「〒273-0039」、「273-0039」、「2730039」といった表記の違いを同一であるものとして扱う。日付は、GGGGyyMMdd(平成250110,H250110)、yyMMdd(130110)、yyyyMMdd(20130110)、GGGGyy年MM月dd日(平成25年01月10日,H25年01月10日)、yyyy年MM月dd日(2013年01月10日)、GGGGyy/MM/dd(平成25/01/10,H25/01/10)、yy/MM/dd(13/01/10)、yyyy/MM/dd(2013/01/10,2013/1/10 9:06:39)、yy-MM-dd(13-01-10)、GGGGyy-MM-dd(平成25-01-10,H25-01-10)、yyyy-MM-dd(2013-01-10)、yy年MM月dd日(13年01月10日)といった表記の違いを同一であるものとして扱う。法人名は、(株)、機種依存文字によるマーク及び株式会社、(有)、機種依存文字によるマーク及び有限会社、(医)及び医療法人、(社)及び社団法人、(財)及び財団法人、(合)及び合資会社、(宗)及び宗教法人、(学)及び学校法人、(相)及び相互会社、(資)及び合資会社、(名)及び合名会社、(独)及び独立行政法人、(特)及び特別認可法人、(福)及び福祉法人、並びに一般、公益、協議会及び連合会の有無といった表記の違いを同一であるものとして扱う。数値は、\12,300、12300、12,300、壱万弐千参百、一万二千三百といった表記の違いを同一であるものとして扱う。和文解析は、「△△太郎です」、「△△ 太郎」、「あいう△△太郎」といった文を解析して名前等を抽出する。英文解析は、SankakuTaro、Sankaku Taro、sankaku taroといった英文における標記の違いを同一であるものとして扱う。氏名は、齋藤たろう、齊藤たろう、斉藤たろう、斎藤たろうといった感じの異体字を同一であるものとして扱う。住所は、「千葉県船橋市印外○丁目□番×号△△△ハイツB-567号室」、「船橋市印外○-□-×-567」、「千葉県船橋市印外○-□-×-567」、「千葉県船橋市印外○丁目□番×号B-567号室」、「千葉県船橋市印外○丁目□番×号567号室」といった表記の違いを同一であるものとして扱う。
 ユーザ辞書は、ユーザが定義する辞書ファイルに表記のゆれや同義語をあらかじめ設定して用いる。表記のゆれや同義語をあらかじめ設定することにより、あいまいな値を正規化して扱うことができる。また、一括して文字を置換するための辞書(一括文字置換辞書)も選択できる。ユーザ辞書は、間柄(親子間関係)と同義語による名寄せを行う辞書である。正規表現ユーザ辞書は、正規表現による名寄せを行うための辞書である。置換用ユーザ辞書は、登録した内容をもとに、文字置換を一括で行うための辞書である。名寄せ関連の辞書は、例えば、順位1:間柄と同義語、順位2:正規表現のような優先順位をつけて適用される。
 ユーザ辞書は、例えば図60のように、テキストエディタなどで内容を編集できるものとする。図60は、間柄と同義語のユーザ辞書の記載例である。図60では、語句を模式的にアルファベットで示している。間柄(親子間関係)の入力は、例えば、語句を半角スラッシュ「/」で区切って入力する。スラッシュの左側に親の語句、スラッシュの右側に子の語句を入力する。同義語の入力は、例えば、語句を半角カンマ「,」で区切って入力する。また、先頭に「#」を付した行は、コメントとして扱い、処理には用いない。
 図61に、図60のユーザ辞書を図化した語句の関係の一例を示す。なお、図61における円形で囲われたアルファベットは、1つの語句を表している。例えば、「C」「D」「P」は同義語、「C」は親「A」と、「P」は親「O」と間柄(親子間関係)である。なお、間柄と同義語は、自動的に連携するものとする。具体的には、図60において「K」は直接的には「I」との親子間関係が定義されているのみである。自動的に連携することにより、最上位概念を取得する場合、「K」を指定すると、「K」-「I」-「H」-「G」-「Q」-「O」の順に辿り、最上位の語句「O」を取得することができる。また、「C」及び「P」のように複数の同義語が別々の親と紐付いている場合、同義語「C」「D」「P」は自然順序で並べ替えられ、一番近い親と紐付く。自然順序とは、例えば、文字であればアルファベット順、数値であれば値の小さい順である。なお、図60のようなユーザ辞書において、同義語のうち一番左に定義されている語句に紐づけるようにしてもよい。図60のようなユーザ辞書が設定されている場合、図61の語句「D」は、同義語「C」と紐づけられる。さらに、語句「C」は、親「A」と紐づけられる。また、ある語句の下位概念を取得する場合、例えば当該語句の下位に接続されたすべての子及びそれらの同義語を取得するものとする。具体的には、「H」を指定すると「I」、「K」、「J」、「M」、「L」を取得できる。このように、各語句は、最上位の親、もしくは所定の優先順位に基づく同義語、又は下位に接続されたすべての子及びそれらの同義語と紐づけられるものとする。
 本実施形態では、例えば、間柄として組織内の部署の構成を定義することで、部署ごとに名寄せや後述する集計を行うことができる。また、間柄として、製品を構成する部品を階層的に定義することで、製品の構成要素ごとに名寄せや集計を行うこともできる。新旧製品についてこのような集計結果の結果を比較することで、新旧製品の部品の互換性をチェックすることもできる。なお、同義語とは、同一概念(同概念)の関係を意味する。また、間柄とは、上位概念及び下位概念の関係を意味する。本実施の形態では、ユーザが設定した辞書に基づいて自由度の高い名寄せ等を行うことができるようになる。
 また、図62は、正規表現のユーザ辞書の入力例である。「.?」は、0又は1個の文字の存在を示す。よって、「パ.?ツ」には、「パーツ」、「パ-ツ」、「パツ」等が該当する。なお、「パーーツ」は該当しない。「.*」は、0個以上の文字の存在を示す。よって、「.*前田.*」には、「あいう前田」、「前田」、「前田か」等が該当する。一般的な正規表現が使用できるものとし、上記以外の表現については説明を省略する。
 また、図63は、置換のユーザ辞書の入力例である。図63の例では、語句を「/」で区切って入力している。「/」の左側の語句は、置換後の語句を表し、「/」の右側の語句は、置換元の語句を表す。なお、置換基の語句は、「,」で複数入力できる。図63のようなユーザ辞書を利用すると、「JAPAN」という語句は、「JXPXP」に置換される。
<集計>
 集計とは、1つの表形式データを処理対象として、キー属性を含む所定の条件に基づいて値群を要約統計量値として出力する機能である。集計処理後は、キー属性の値が設定した条件を満たすレコードごとに集計属性が集計(すなわち、集約)される。また、求められた値又は元の値群に対して四則演算を行い、さらに所定の条件に基づく計算結果を出力することもできる。また、関数を用いてデータの加工を行うこともできる。さらに、数値の集計以外に、条件に該当するデータを計数(カウント)したり、条件に該当するデータに印をつけることもできる。
 例えば、図40に示した縦結合処理の出力データが、集計処理の入力データであるものとする。また、図64は、集計処理の出力データの一例である。図40の「駅名」及び「日付」をキー属性として、「値」、「給与」をそれぞれ合算し、集計の対象となったレコード数(該当数)、所定の条件式を満たすか否かによるフラグ(問題)を年月ごとに集計すると、図64のようになる。
 また、図65から図71は、集計処理の設定をするための画面の一例を示す図である。図65の集計の設定画面(集計画面)は、「属性一覧」、「新規属性」、「キー属性」、「集計属性」を設定するための領域を含む。「属性一覧」の領域には、入力データに含まれる属性の一覧が表示される。「新規属性」の領域には、入力データにない項目を設定する場合にユーザがドラッグする「新規」パネルが表示される。「キー属性」の領域は、キー属性として用いる属性を表すパネルをユーザがドラッグアンドドロップするための領域であり、設定されているキー属性が表示される。なお、キー属性に設定されたパネルは並べ替え可能としてもよい。また、キー属性の設定後はパネルが二段表示となり、上段には属性名が表示され、下段には、後述する集計キー設定画面の集計方法の内容が表示される。「集計属性」の領域は、集計の対象となる属性を表すパネルをユーザがドラッグアンドドロップするための領域であり、設定されている集計属性が表示されている。ユーザは、「集計属性」の領域に「新規」パネルをドラッグアンドドロップすることにより、集計属性に新規属性を追加することができる。新規属性とは、レコード数、算術演算の結果、条件判定の結果、所定の関数処理の結果等、新たな属性として追加したものである。なお、先(集計属性領域の上方)に設定されている新規属性を用いて、後(集計属性領域の下方)の新規属性を定義することもできる。
 図66は、キー属性を設定するための画面(集計キー設定画面)の一例である。なお、図66の画面は、ユーザが選択したキー属性について、集計方法を選択するための領域を含む。集計方法としては、「完全一致」、「ユーザ辞書」、「年別」、「月別」、「日別」、「週別・年単位」「週別・月単位」及び「曜日別」の選択肢が示されており、ユーザはいずれかをクリックすることで選択できる。なお、「年別」から「曜日別」は、値が日付の場合に有効となる。
 図67は、集計属性を設定するための画面(集計属性設定画面)の一例である。図67の画面は、ユーザが選択した集計属性について、文字集計の種類又は数値集計の種類を選択するための領域を含む。文字集計の種類には、「結合」及び「頻度」がある。結合は、値をカンマ区切りで出力する機能である。頻度は、値の出現回数をカッコ内に出力する機能である。数値集計の種類には、「合計」、「平均」、「最大」、「最小」、「中央値」、「最頻値」、「分散」及び「標準偏差」がある。合計は、全ての数値を足し合わせた値を算出する機能である。平均は、合計の算術平均を算出する機能である。最大は、最大値を特定する機能である。最小は、最小値を特定する機能である。中央値は、有限個のデータを大きさの順に並べたとき中央に位置する値を特定する機能である。最頻値は、標本群で最も頻繁に出現する値を特定する。分散は、標本分散を算出する。標準偏差は、標本標準偏差を算出する。ユーザはいずれかをクリックすることにより、集計の種類を選択することができる。なお、集計属性には、「新規」パネルを登録することもできる。
 図68は、集計属性として新規属性を設定するための画面(集計追加属性画面)の一例である。すなわち、図68の画面は、図65の画面において集計属性に追加された新規属性の設定をする際に表示される。図68の画面は、新規属性の名称を入力するための領域と、新規属性の種類を選択するための領域とを含む。新規属性の名称には、ユーザが文字列を入力する。そして、入力された文字列が、出力データの属性名に設定される。新規属性の種類には、「カウント」、「計算」、「条件」及び「関数処理」の選択肢がある。カウントは、キー属性画面で指定した属性の個数を出力する機能である。すなわち、「カウント」が選択された場合、図66の「集計キー設定」画面で設定された条件を満たすレコード群に含まれるレコード数を計数し、当該新規項目の値とする。計算は、計算結果を出力する機能であり、後述する計算画面で詳細を設定する。条件は、設定された判定条件の判定結果を出力する機能であり、後述する条件画面で詳細を設定する。関数処理は、設定した関数処理の結果を出力する機能であり、後述する関数処理画面で詳細を設定する。なお、図68の設定画面において、パネルの色が設定の状態を表すようにしてもよい。例えば、水色は、未設定の状態を表す。また、紫色は、横結合キー設定画面において設定済の状態を表す。黄色は、新規属性が未設定の状態を示す。
 図69は、「計算」の設定をするための画面(計算画面)の一例である。図69の画面は、集計属性の一覧を表示する領域と、四則演算の設定をするためのテンキー領域とを含む。ユーザはこれらを組み合わせて、当該新規属性の値を算出するための計算式を定義することができる。集計属性には、集計画面集計属性名が表示される。ここでは、設定済みの属性(紫色のパネル)が表示される。また、自パネルより前の新規属性も表示され、計算に用いることができる。演算式の値には、計算式用の数値や演算子を選択する。入力は、集計属性のパネルから選択したり、テンキー領域からドラッグアンドドロップしたりすることにより行う。また、確認用計算式には、計算式の値がテキスト表示される。なお、計算式に誤りがある場合、赤字等で強調表示するようにしてもよい。
 また、図70は、「条件」の設定をするための画面(条件画面)の一例である。図70の画面は、集計属性の一覧を表示する領域と、条件式を設定するための領域と、条件に合致する場合に当該新規属性に表示する値及び条件に合致しない場合に当該新規属性に表示する値を入力する領域とを含む。ユーザは、任意の集計属性が所定の条件を満たすか否かを判定するための条件式を設定することができる。条件式は、AND(論理積)又はOR(論理和)で複数接続することもできる。集計属性には、集計画面 の集計属性名が表示される。ここでは、設定済みの属性(紫色のパネル)が表示される。また、新規属性は、自パネルより前の属性が表示される。条件式を設定するための領域には、集計時の条件式を入力する。属性には、条件のもととなる集計属性を選択する。値には、条件の値を入力する。区分には、判定条件を1つ選択する。選択肢として、「一致する」、「を含む」、「以上」、「以下」、「大なり」、「小なり」、「一致しない」、「含まない」、「正規表現」が選択できる。また、「AND」ボタンが押下されると、新たなAND条件式の行が追加される。「OR」ボタンが押下されると、新たなOR条件式の行が追加される。条件に合致の欄には、条件式に合致した値の行に出力する値を、入力又は集計属性から選択する。条件に合致しないの欄には、条件式に合致しない値の行に出力する値を入力または、集計属性から選択する。
 図71は、「関数処理」を設定するための画面(関数処理画面)の一例である。図71の画面は、「集計属性」の一覧を表示する領域と、「対象属性」を指定するための領域と、「データ処理関数名」を選択するための領域とを含む。ユーザは、集計属性のパネルを対象属性を設定するための領域にドラッグアンドドロップすることができる。また、ユーザがデータ処理関数名を選択すると、選択されたデータ処理関数名に応じて引数を入力するための領域が表示される。集計属性には、集計画面の集計属性名が表示される。ここでは、設定済みの属性(紫色のパネル)が表示される。また、新規属性は、自パネルより前の属性が表示される。対象属性には、関数処理を行う属性を指定する。データ処理関数名には、関数の分類を選択する。図65から図71を用いて説明したような項目が、集計処理の設定情報としてデータ記憶部401に記憶される。
 選択肢として、次のような関数がある。「alphabetic」は、アルファベットの文字(A-Zとa-z)のみ抽出する関数である。「left」は、左端から指定された文字数分の文字を取得する関数である。「lefta」は、左端から検索文字を検索し、その文字までの文字を取得する関数である。「leftb」は、左端か検索文字を検索し、その位置までの文字を取得する関数である。「length」は、文字の長さを取得する関数である。「lower」は、英字の大文字を小文字にする関数である。「middle」は、左から指定された位置と文字数を取得する関数である。「multibytechar」は、マルチバイト文字のみ抽出する関数である。「number」は、文字列のうち1文字ずつ判定し数値のみ抽出する関数である。「repeat」は、指定された属性の値(数値)から指定された文字を繰り返して登録する関数である「replace」は、指定された文字を置換する関数である。「replacedic」は、置換辞書の内容をもとに指定された文字を置換する関数である。「right」は、右端から指定された文字を取得する関数である。「righta」は、右端から検索文字を検索し、その文字までの文字を取得する関数である。「rightb」は、右端から検索文字検索し、その位置までの文字を取得する関数である。「substitute」は、左から指定された位置と文字数を置換する関数である。「normalizeaddress」は、あいまいな住所を標準化する関数である。「normalizecompany」は、会社名を標準化する関数である。「normalizedate」は、日付をスラッシュ(/)で区切る関数である。「normalizedateISO」は、日付を正規化する関数である。「jnounphrase」は、文章から一般的な名詞のみを抽出する関数である。「normalizename」は、名前を正規化する関数である。「normalizenumber」は、漢数字(旧漢字も含みます)を含めた数字を標準化する関数である。「normalizepostcode」は、郵便番号を標準化する関数である。「municipalities」は、住所から市区町村名を取得する関数である。「postaddress」は、郵便番号から住所を取得する関数である。「prefectures」は、住所から都道府県名を取得する関数である。なお、本実施形態において、集計結果出力時の属性名は、『属性名』+『_(アンダーバー)』+『下記表の「集計結果の属性名」』とする。
<グループ化>
 グループ化とは、表型データを任意の形で分類し集計する機能である。具体的には、所定の列の要素に基づいてレコードを分類して集計(いわゆる「クロス集計」)する機能である。グループ化部407は、ユーザが設定したキー属性とグループ化属性に基づいて、集計を行う。キーとなる列の要素には、後述するデータクレンジング機能を用いることができる。
 図72は、グループ化処理の入力データの一例である。また、図73は、グループ化処理の出力データの一例である。図72のような表形式データのうち、「機器名」及び「シリアル番号」をキー属性に設定し、「データ取得日」をグループ属性に設定し、「出力枚数」を値に設定すると、キー属性が同一のレコードごとに、且つデータ取得日ごとにグループ化され、出力枚数の値が集計される。
 また、図74は、グループ化処理の設定をするための画面(グループ化画面)の一例である。図74は、「属性一覧」を表示するための領域と、キー属性を設定するための領域と、グループ属性を設定末ための領域と、値の設定をするための領域と、数値集計をするための領域とを含む。属性一覧には、属性名が表示される。キー属性には、グループ化する際のキー属性を指定する。なお、パネルは並べ替え可能である。また、設定後は二段表示となり、上段には属性名が表示され、下段にはグループ化キー設定画面の名寄せ判断及びデータクレンジング処理の内容が表示される。図74を用いて説明したような項目が、グループ化処理の設定情報としてデータ記憶部401に記憶される。
<グループ化解除>
 グループ化解除とは、指定したキー列に従い、統合的なデータをレコードに分割する機能である。このとき、要素の名称を値として用いることができる。また、ユーザが指定したキー属性とグループ化解除属性とに従ってレコードを分割する。
 図72に示したデータが、グループ化解除処理の入力データであるものとする。また、図75は、グループ化解除処理の出力データの一例である。図72のような表形式データのうち、「データ取得日」をキー属性に設定し、「機器名」及び「シリアル番号」をグループ化解除属性に設定すると、図75のように、グループ化解除属性の属性名を値とするレコードに分割される。
 図76は、グループ化解除処理の設定をするための画面(グループ化キー設定画面)の一例である。図76は、「属性一覧」を表示するための領域と、「キー属性」を設定するための領域と、「グループ化解除属性」を設定するための領域とを含む。属性一覧には、属性名が表示される。キー属性には、グループ化解除する際のキー属性を指定する。なお、パネルは並べ替え可能である。グループ化解除属性には、グループ化解除する際の属性を指定する。全移動が指定されると、属性一覧のパネルをグループ化解除属性に全て移動する。本実施形態において、グループ化解除結果出力時の属性名は、キー属性の属性名、「sub」、「value」とする。図76を用いて説明したような項目が、グループ化解除処理の設定情報としてデータ記憶部401に記憶される。
<ナンバリング>
 ナンバリングとは、レコードに連続番号(「連番」とも呼ぶ)を振るための属性を追加する機能である。複数のファイルを結合した場合であっても、レコードを一意に特定できる連番を追加することができる。例えば、図72の「No」のように連番を追加することができる。図77は、ナンバリングを設定するための画面の一例である。図77は、属性名を入力するための領域を含む。ユーザは、連番を振るための属性に任意の名称を付けることができる。
<検索>
 検索とは、データフォーマットの異なる複数の表形式データや結合後の表形式データから、指定された検索条件にもとづいて、レコードを抽出する機能である。抽出されたレコードをソート(並べ替え)することも可能である。
 図78は、検索条件を設定するための画面の一例である。図78の画面は、検索条件式を入力するための領域と、ソート条件を設定するための領域と、属性一覧を表示する領域と、検索条件式生成オプションの領域(検索キーワードの条件式への入力を支援するための領域及び検索範囲の条件式への入力を支援するための領域)とを含む。キーワード検索の条件には、論理積(AND)、論理和(OR)、否定(NOT)を使用することができる。範囲検索の条件には、所定の属性に対し、「完全一致」、「中間一致」、「前方一致」、「後方一致」、「以上」、「以下」、「大なり」、「小なり」、「一致しない」、「含まない」が選択できる。また、ソート条件として、所定の属性に対し「昇順」又は「降順」が指定できる。
<外部連携>
 外部連携とは、表形式データ処理装置が保持している他のプログラムを起動する機能である。例えば、本実施形態に係る処理によって出力されるデータを読み込んで用いる他のプログラムに、処理を引き継ぐことができる。プログラムファイルには、外部プログラムの絶対パスを入力する。起動オプションとして、コマンドラインオプションを入力できるようにしてもよい。また、起動後の待機時間(秒)を指定できるようにしてもよい。
<ファイル操作>
 また、CSVファイルの削除、出力、分割を行うこともできる。ファイル分割とは、表形式データを所定の大きさに分割する機能である。例えば、入力される表形式データを物理的に分割することにより、入力データのサイズを小さくすることができ、本実施形態に係る処理を行う際のコンピュータの負荷を低減させることができる。
<設定内容の保存・変更>
 設定内容の保存及び復元とは、1以上のプロセスの実行順序及び各プロセスを実行するための設定を定義した設定内容をXMLファイルに保存する処理、並びに保存したファイルを開く処理である。本実施形態では、XMLファイルに保存される情報により、項目の構成が同一の表形式データに対して、上記のような処理を再度実行することができる。なお、XMLファイルを再実行情報とも呼ぶ。なお、保存したファイルを開き、定義されたプロセスを実行することができると共に、定義を修正することも可能である。本実施形態では、XMLファイルに保存される一連のプロセスをジョブとも呼ぶ。
 また、復元時には、各プロセスの出力属性及び入力属性に不整合がないかチェックするようにしてもよい。例えば、CSVファイルの属性が増減していたり、属性名が変更されている場合には、不整合を検知して画面上で警告表示をするようにしてもよい。
<XMLファイルの内容>
 図79にXMLファイルの内容の一例を示す。<Set>タグは、データセット項目であり、タグ内には入力CSVファイルについて記述する。<Process>タグは、プロセスセット項目であり、タグ内には実行する処理について記述する。具体的には検索、縦結合、横結合、集計を設定する。その他、データ宣言部を含んでいてもよい。以下、図79において使用されていないタグも含め、XMLファイルで用いられる要素名及び属性名並びにその内容の一例を説明する。
 <Search>タグは、検索項目であり、タグ内にはファイル内検索の条件を記述する。<OneColumnJoin>タグは、縦結合項目であり、タグ内には縦結合に関する設定を記述する。<FullColumnJoin>タグは、横結合項目であり、タグ内には横結合に関する設定を記述する。<Summarization>タグは、集計項目であり、タグ内には集計に関する設定を記述する。<Runtime>タグは、外部連携項目であり、タグ内には外部プログラムの起動について記述する。<Numbering>タグは、ナンバリング項目であり、タグ内にはナンバリングに関する設定を記述する。<Group>タグは、グループ化項目であり、タグ内にはグループ化に関する設定を記述する。<Ungroup>タグは、グループ化解除項目であり、タグ内にはグループ化解除に関する設定を記述する。<Out>タグは、データアウト項目であり、タグ内には出力CSVファイルについて記述する。<Comment>タグは、コメント項目であり、タグ内には、コメント(文字列)を記載する。
 Searchタグには、XML要素(エレメント)として、検索条件を示す論理式(Fml)が記述される。ソートする場合には、ソート(Sort)要素に昇順(asc)又は降順(desc)が記述される。
 OneColumnJoinタグには、縦結合の設定を表す要素が記述される。ターゲット(Target)は、データセットで指定したファイル内容である。フィールド(Field)は、出力する属性の数だけ記述される。フィールド要素(Cell)には属性名が記述され、さらにファイル名(filename)属性(アトリビュート)に、フルパスのファイル名が記述される。結合(Unite)は、属性の連結が連結する属性の数だけ記述される。結合するセル要素(UCell)には、連結する属性名が記述され、さらにファイル名(filename)属性に、フルパスのファイル名が記述される。新しいフィールド(New)は、出力する属性内容が記述される。フィールド(Field)は、ターゲット(Target)の数だけ記述される。フィールド要素(Cell)には、データアウトの属性名が記述される。
 次に、横結合に関連するタグについて説明する。横結合(FullColumnJoin)は、横結合を示すタグである。キー(Key)には、キー属性が記述され、さらに名寄せ判断(match)属性には、完全一致、前方一致、後方一致、中間一致のいずれかを示す識別情報が記述される。また、クレンジング(cleansing)属性には、使用しない、電話番号、郵便番号、日付、法人名、数値、日本語解析、英字解析、氏名、住所、ユーザ辞書のいずれかが記述される。結合(Add)要素には、重複する値の処理(jointype)属性として、重複除外(一行)、重複(一行)、頻度ソート、自動補完のいずれかを示す識別情報、及び値の間の接続因子(delimiter)属性として、改行、スラッシュ、カンマ、スペースのいずれかを示す識別情報が記述される。
 次に、集計する際の各要素について説明する。Summarizationは集計を示すタグである。また、Keyは、キー要素を示し、キーの数だけ記述され、さらにaggregate属性には、名寄せ判断を示し、完全一致、年別、月別、日別、週別(年単位)、週別(月単位)、曜日別、ユーザ辞書のいずれかを示す識別情報が記述される。Statistic要素は属性集計を示し、出力する属性の数だけ記述される。さらに、flag属性はフラグであり、0-99までの数値で重複しない値が入力される。また、collect属性は集計内容を示し、結合、頻度、合計、平均、中央値、最頻値、最大値、最小値、分散、標準偏差のいずれかを示す識別情報が設定される。また、StatisticNew要素は新規属性集計を示す。また、出力する属性の数だけ属性名が記述され、collect属性は、集計内容であり、カウント、計算、条件、分岐(未使用)、ナンバリング(廃止)、関数処理のいずれかを示す識別情報が設定される。また、fml属性は集計式を示す。集計式の中の括弧において、角括弧内の数字は、フラグで設定した番号、波括弧内の数字は、新規属性集計の0から始まる登録順番を表す。集計式の記述は、集計内容が「計算」の場合、四則演算の式を記述する。集計内容が「条件」の場合、条件式を記述する。集計内容が「関数処理」の場合、関数を記述する。
 Runtimeは、外部連携を示すタグである。File要素には、外部プログラムの絶対パスを記述する。さらに、option属性には、コマンドラインオプションを記述する。Wait属性には、外部プログラム起動後の待ち時間をミリ秒単位で記述する。外部プログラムが終了するまで待機する設定値を設けてもよい。
 Numberingは、ナンバリングを示すタグである。XML要素のうち、Fieldにはフィールド、Cellにはフィールド要素(属性名)を記述する。
 Groupは、グループ化を示すタグである。Key要素は、キーを示す。さらに、match属性には、名寄せ判断として、完全一致、前方一致、後方一致、中間一致のいずれかを示す識別情報が記述される。また、cleansing属性には、クレンジングの種類として、使用しない、電話番号、郵便番号、日付、法人名、数値、日本語解析、英字解析、氏名、住所、ユーザ辞書のいずれかを示す識別情報が記述される。GroupLabel要素には、グループ化属性を示す属性名を記述される。GroupData要素には、グループ化値を示す属性名を記述される。StatisticNew要素には、グループ化集計を示す属性名をグループ化値の数だけ記述される。さらに、collect属性には、グループ化内容として、結合、頻度、合計、平均、中央値、最頻値、最大値、最小値、分散、標準偏差の何れかを示す識別情報を記述する。
 Ungroupは、グループ化解除を示すタグである。Key要素には、キー属性を記述する。Field要素には、属性の数だけ記述される。Unite要素は結合を示し、セル要素が1つの場合は記述されない。UCell要素には、結合するセル要素であるグループ化解除属性名を記述する。
 Outは、データアウトを示すタグである。Saveには、出力するファイルパスを記述する。codeには、文字コードを記述する。Deleteはファイル削除を示し、削除するフォルダ又はファイルパスを記述する。
 Commentは、それぞれのエレメントにコメントを例えば文章として記述するタグである。それぞれの前述のタグ内に処理内容及び担当者、日時などを記述しても良い。
 本実施形態における処理を再実行するための情報は、様々な形式で記憶させておくことが可能である。XMLファイルは、インターネットブラウザやテキストエディタ等で表示することができ、ユーザにとって確認しやすいものとなる。なお、本実施形態に係るタグの規格は一例であり、設定項目を保持することができる範囲で様々な変更を加えることができる。また、機能の追加に応じてタグの種類を増やしてもよい。
<バッチ処理>
 図80に示すように、バッチ処理は、1以上のジョブを設定されたスケジュールで実行する処理である。図80の例は、3つのXMLファイルで定義された3つのジョブが連続して動作するバッチ処理を模式的に表している。なお、2以上のジョブによって出力される2以上のCSVファイルを、後続の1つのジョブの入力ファイルとしてもよい。
 図81にバッチ処理の設定画面の一例を示す。バッチ処理では、作成したジョブ(XMLファイル)を、設定したスケジュール(曜日・時刻・期間)で起動する。図81の画面は、バッチ処理フィールド、バッチ実行フィールド(スケジュールとオプション)から構成される。また、バッチ処理の設定を記憶させておき、本実施形態に係るプログラムの起動時に、設定されている内容を読み出す。また、複数のジョブを指定した場合、番号(No.)順に実行する。バッチ実行フィールドで指定する日時等は、表形式データ処理装置が備える時計機能を利用して判断される。開始時間には、バッチ実行開始時間を入力する。「バッチ開始」ボタンを押下すると、設定内容に従いバッチを実行する。また、「停止」ボタンを押下すると、実行中のバッチを停止する。スケジュールには、バッチを実行する曜日(日~土)を指定する。開始日には、バッチ実行開始日を入力する。終了日には、バッチ実行終了日を入力する。メール送信をONにすると、実行結果がエラーの場合に設定した宛先にメールで通知することができる。繰返しをONにすると、繰返し実行とする。図81を用いて説明した項目が、バッチ処理の設定情報としてデータ記憶部401に記憶される。
<新規ジョブ実行処理>
 図82は、新規ジョブ実行処理の一例を示す処理フロー図である。また、図83は、1つのジョブに含まれるプロセス(処理)の流れを、矢印で接続されたアイコンでグラフィカルに表示するプロセスフィールド画面である。例えば、表形式データ処理装置4は、図83のような画面を介して、ユーザからジョブの設定及び実行の要求を受ける。図83の画面は、メニューバーと、ジョブ作成用のボタンと、ジョブに含まれるプロセスを表示するプロセスフィールドとを含む。図83の例では、4つのファイルが縦結合されて1つの表に統合され、さらに横結合及びCSVファイル出力を実行する一連のプロセスがプロセスフィールドに表示されている。なお、プロセスフィールドに表示される各プロセスやCSVファイル操作のアイコンを、「エレメント」とも呼ぶ。
 図83の画面において、例えば、「ファイル」メニューから、XML形式で保存したファイルを開き、プロセスフィールドに復元することができる。また、メニューから時間起動の設定を行うバッチ処理画面を開くこともできる。さらに、メニューからキャッシュをクリアできるようにしてもよい。
 また、図83の画面は、各処理の設定を行うためのボタンを有している。各ボタンは、画面上の左から順に、入力ファイルをプロセスフィールドに追加し、ファイル設定画面を表示する「ファイル設定」ボタン、縦結合のエレメントをプロセスフィールドに追加し、設定画面を表示する「縦結合」ボタン、横結合のエレメントをプロセスフィールドに追加し、設定画面を表示する「横結合」ボタン、集計のエレメントをプロセスフィールドに追加し、設定画面を表示する「集計」ボタン、グループ化のエレメントをプロセスフィールドに追加し、設定画面を表示する「グループ化」ボタン、グループ化解除のエレメントをプロセスフィールドに追加し、設定画面を表示する「グループ化解除」ボタン、ナンバリングのエレメントをプロセスフィールドに追加し、設定画面を表示する「ナンバリング」ボタン、検索のエレメントをプロセスフィールドに追加し、設定画面を表示する「検索」ボタン、外部連携のエレメントをプロセスフィールドに追加し、設定画面を表示する「外部連携」ボタン、プロセス実行時に、指定したCSVファイルを削除するエレメントをプロセスフィールドに追加し、設定画面を表示する「CSVファイル削除」ボタン、指定したCSVファイルを出力するエレメントをプロセスフィールドに追加し、設定画面を表示する「CSVファイル出力」ボタン、指定したCSVファイルを分割するエレメントをプロセスフィールドに追加し、設定画面を表示する「CSVファイル分割」ボタン、作成したプロセスを実行する「実行」ボタン、復元するXMLファイル選択画面を表示する「プロセス復元」ボタン、XMLファイル保存画面を表示する「プロセス保存」ボタン、操作結果イメージを別画面で表示する「イメージデータビューア」ボタン、プロセスフィールドの内容をリセットする「プロセスリセット」ボタンである。ユーザはこれらのボタンを押下することで、ジョブ(プロセスフィールド)にプロセスを追加したり、プロセスを実行したりすることができる。また、プロセスフィールド上でエレメントを右クリックすると、当該エレメントの処理設定をするための「編集」メニュー、当該エレメントをプロセスフィールドから削除するための「削除」メニュー等(コンテキストメニュー)が表示される。ここで、「編集」を選択した場合も、上で説明した各処理の設定画面が表示されるものとする。さらにエレメントはドラッグアンドドロップにより順序を変更することができる。また、エレメント間の入出力ファイルが整合しない場合は、エレメントの順序を変更できないようにするか、自動的にエレメント内部のデータの整合を取るような処理にしてもよい。
 また、図83のプロセスフィールド画面において、各エレメントが実行する処理の内容を表示するようにしてもよい。例えば、各エレメントの周囲に表示を追加してもよいし、各エレメントにカーソルを合わせると表示が現れるようにしてもよい。表示の内容は、例えばXMLに設定されるような内容の少なくとも一部を含むようにしてもよい。また、処理エレメント前後の表型データを表示してもよい。例えば、縦結合処理のエレメントであれば、属性の対応付けの少なくとも一部が表示される。また、横結合処理のエレメントであれば、キー属性、名寄せ判断及び重複する値の処理の少なくとも一部が表示される。また、集計処理のエレメントであれば、キー属性及び集計属性の少なくとも一部が表示される。さらに、ユーザが内容を修正及び保存できるようにしてもよい。また、その処理エレメントにコメントとして文章及び修正できるようにしてもよい。また、中間的に生成される表形式データの内容を表示できる機能(イメージデータビューアとも呼ぶ)を設けてもよい。ユーザは、各プロセスで生成される出力データを検証しつつ、ジョブの設定を行うことができる。図84に、処理の内容及びイメージデータビューアを表示する画面の一例を示す。図84の例では、各エレメントに吹き出しのアイコンが設けられており、ユーザがクリックしたりカーソルを重ねることで、予め記憶させられているコメントが表示されるものとする。また、吹き出しのアイコンをクリック等することによって、右下に示すような「コメント編集」ウィンドウを表示させ、ユーザがコメントを入力又は修正できるようにしてもよい。図84の上には、「イメージデータビューア」ウィンドウが表示されている。ここには、例えば、編集中のジョブが最終的に出力する表形式データの内容が表示される。なお、ジョブに含まれるエレメントの各々について、入力ファイル又は出力ファイルの項目の構成又は表形式データの内容を表示できるようにしてもよい(図示せず)。
 このようにすれば、ユーザは「横結合」や「集計」といった処理の具体的な内容を理解することができる。本実施形態に係るジョブは設定の変更が容易であるところ、このような表示があれば、ユーザは最新の仕様を容易に理解することができる。したがって、例えば業務の担当者であるユーザが交代するような場合も、引継ぎがスムーズになる。さらに、ジョブの簡易的な仕様書又は設計書として、プロセスフィールドに含まれる各エレメントの内容及び入出力データのCSVファイルの属性名等を印刷等できるようにしてもよい。
 表形式データ処理装置4の入出力部402は、表形式データの読み出しを行う(図82:S201)。本ステップでは、入出力部402は、新規ジョブの処理対象として1以上の表形式データをデータ記憶部401から読み出す。表形式データ処理装置4の表示装置には、例えば、図85に示すようなウィンドウが表示される。図85の例では、表形式データ「社員交通費清算.csv」及び「営業経費.csv」が読み出され、下段のプロセスフィールドには2つのCSVファイルのエレメントが表示されている。また、CSVファイルの内容が、上段のイメージデータビューアに表示されている。
 また、制御部403は、ユーザの操作を受けて縦結合の設定をデータ記憶部401に記憶させ、縦結合部404は、縦結合の処理を行う(S202)。結合結果は1つの表形式データで表すことができる。ここでは、一時的にメモリに保持される。また、縦結合処理はジョブの設定が完了してからジョブ全体の実行中に行われるようにしてもよい。ここでは、例えば、図86に示すようなウィンドウが表示される。図86の例では、プロセスフィールドに縦結合のエレメントが追加されている。また、イメージデータビューアには、縦結合の結果として生成される表形式データが表示されている。
 次に、制御部403は、ジョブの設定が完了したか判断する(S203)。なお、ユーザの操作を介して、設定の保存やジョブの実行、設定操作の終了が指示された場合、ジョブの設定が完了したと判断する。ジョブの設定が完了していないと判断された場合(S203:NO)、制御部403は、ユーザの操作を受けてその他のプロセスをジョブの後尾に追加する(S204)。ここでは、横結合、集計等、任意のプロセスが追加される。また、各プロセスは、前段階のプロセスの出力データを入力データとしてそれぞれの処理を行う。図87に、横結合及びCSVファイル出力のエレメントが追加された例を示す。図87のイメージデータビューアには、出力されるCSVファイルの内容が表示されている。
 一方、S203においてジョブの設定が完了したと判断された場合、制御部403は、ジョブに含まれるプロセスを再実行するための設定を定義したスクリプト(XMLファイル)を生成し、データ記憶部401に記憶させる(S205)。なお、ジョブの設定が完了した場合にはじめてジョブ全体を実行するようにしてもよいし、ジョブに含まれる任意のプロセスまでの処理を自由に実行できるようにしてもよい。
 このようにすれば、ユーザは、表形式データに対して所望の処理を行い、設定した形式に変換して出力することができるようになる。また、実行した処理を再現するためのスクリプトを保存できるため、例えば前回の処理後に発生した業務データに対して、前回と同様の処理を適用することができるようになる。表計算ソフトが備えるマクロ命令等よりも複雑な処理を容易に定義することができ、また、専用のシステムを開発するよりも処理の作成及び改修が容易になる。したがって、例えば、ユーザが試行錯誤しつつ統計的な分析を行いたい場合や、データ処理のコストを抑えたい場合に有用であるといえる。
<バッチ定義処理>
 また、1つ以上のジョブの実行予定を定義しておき、より複雑な処理を自動化することもできる。図88は、いわゆるバッチ処理の設定を定義するバッチ定義処理の一例を示す処理フロー図である。例えば、表形式データ処理装置4は、図81に示したような画面を介してユーザからバッチ定義の要求を受ける。
 まず、表形式データ処理装置4の制御部403は、ユーザの操作に応じて、ジョブ(XMLファイル)の追加を行う(図88:S211)。ここでは、連続して実行する1以上のジョブが実行する順序で登録される。
 次に、制御部403は、ユーザの操作に応じて、バッチ処理を起動させるスケジュールを登録する(S212)。「バッチ処理」の内容についてすでに説明したように、曜日、時刻、期間等の条件や、エラーをメールで通知するための設定等が入力され、データ記憶部401に格納されるものとする。以上で、バッチ定義処理を終了する。
 バッチ処理は、設定された日時になると、バッチ処理部410によって実行される。バッチ処理を行うために、表形式データ処理装置4及び本実施に係るプログラムは予め起動させておくものとする。以上のようなバッチ処理によれば、個々のジョブよりも複雑な処理を実行することができる。また、例えば夜間等にユーザの操作を受けることなく処理を起動するようスケジュールしておくことができるようになる。
<変形例>
 本実施形態で説明した処理は、いわゆるクライアント-サーバ型のシステムによって提供されるようにしてもよい。すなわち、表形式データ処理装置4は、ネットワークを介して接続されたユーザ端末から要求を受け、本実施形態で説明した処理を実行して結果をユーザ端末へ返すようにしてもよい。ネットワークは、例えばインターネットやイントラネット等のようなコンピュータネットワークである。なお、表形式データ処理装置4とユーザ端末とを、専用線で接続してもよい。また、1つの表形式データ処理装置に複数のユーザ端末が接続されていてもよいし、複数の表形式データ処理装置4がネットワーク上に存在し、1又は複数のユーザ端末からの要求を分散して処理する構成としてもよい。
 また、例えばサーバ上で動作するいわゆるSaaS(Software as a Service)のようなサービスの機能の1つとして提供されるようにしてもよい。本実施形態では、CSVファイル等の表形式データを処理対象としている。したがって、外部のRDBMS(Relational DataBase Management System:リレーショナルデータベース管理システム)が管理するデータベースから、例えばCSV形式でレコードをエクスポートすれば、本実施形態で説明した処理を実行できるようになる。また、本実施形態に係る処理によって出力された表形式データを所定の形式に変換し、外部装置のデータベース等に反映させられるようにしてもよい。
 また、本実施形態で示した処理フローは例示であり、処理結果が変わらない限りにおいて処理の順序を変更したり、並列に処理を行うようにしてもよい。画面の例についても、配置、デザイン等を適宜変更できる。
<<縦結合及び横結合の連続処理に係る変形例>>
 上述した縦結合及び横結合は、一連の処理として実行することもできる。例えば、縦結合の設定及び横結合の設定を予め記憶部に保持させておく。縦結合の設定は、入力データである複数の表形式データがそれぞれ有する項目間の対応付けを表すデータを含む。横結合の設定は、集約方法を規定するキー項目及び集計項目の指定等を含む。そして、表形式データの和集合の生成(縦結合)と、キー項目が所定の条件を満たすレコードの集約(横結合)とを連続して実行する。また、図7Aや図41を用いて説明した縦結合の設定画面においてさらにキー項目を指定させ、いわゆる外部結合(Left join、Right join、又はFull outer join)、または内部結合(Inner join)を実行できるようにしてもよい。
 図89に、縦結合及び横結合を一連の処理として実行する場合の設定画面の一例を示す。図89の設定画面は、表の2行目に、「名簿.csv」(以下、「名簿」と呼ぶ)という入力データに含まれる項目名の一覧が表示されている。また、表の3行目は、「会社情報.csv」(以下、「会社情報」と呼ぶ)という入力データに含まれる項目名の一覧が表示されている。なお、表の1行目には、便宜的に項目の通し番号を示している。そして、名簿の項目「勤務先」と会社情報の項目「会社名」とが対応付けられている。このとき、項目4の「編集」ボタンを押下すると、例えば矢印で示すようなメニューが表示されるものとする。そして、「結合キーに設定」又は「結合キーの解除」を選択することにより、当該項目をキー項目として設定したり解除したりすることができる。なお、キーに設定された項目は、図89に示すように例えば背景色の表示態様を変更して識別可能としてもよい。また、メニューの中から「結合タイプ」として「外部結合」又は「内部結合」を選択することにより、例えば当該キー項目の値が完全一致するレコードについて各入力データの値を外部結合または内部結合する旨の設定を行うようにしてもよい。なお、縦結合及び横結合の処理内容は、上述の通りである。また、メニューのその他の項目については説明を省略する。
<<データプロファイリングに係る実施形態>>
 上記の実施形態に係る表形式データは、CSVファイル等であり、各項目についてデータ型が定義されているわけではない。よって、誤りや漏れ、重複等を有する品質の低い表形式データが入力される可能性があり、そのような場合は集約した結果も望ましいものとはならない。本実施形態では、統計的手法を用いて任意の項目に対応付けて保持されている値を可視化し、不適切なデータの検出及び修正を支援する。
<機能構成>
 図90は、本実施形態に係る表形式データ処理装置の機能ブロック図の一例である。図90の表形式データ処理装置5は、データ記憶部501と、データ入力部502と、指示受付部503と、統計処理部504と、チャート出力部505と、入力データ表示部506と、データ修正部507とを含む。データ記憶部501は、本実施形態において処理の対象となる表形式データや、本実施形態において修正された表形式データを保持する。データ入力部502は、ユーザによって入力データとなる表形式データの指定を受け付け、データ記憶部501から指定されたデータを読み出す。指示受付部503は、検証する項目(属性)及び検証方法の指定を受け付ける。また、統計処理部504は、指定された項目に対応付けて保持されている各レコードの値(要素)に対し、指定された検証方法に基づいて統計処理を行う。統計情報出力部505は、統計処理の結果をユーザに対して出力する。統計情報は、指定された検証方法に応じて円グラフ、棒グラフ、ヒストグラム、バブルチャート、ラインチャート、散布図等のチャートによって出力するようにしてもよい。入力データ表示部506は、統計処理の対象となった表形式データの内容を表示する。例えば、出力した統計情報に含まれる要素のグループをユーザが指定することにより、指定されたグループに該当するレコードをハイライト表示(強調表示)して、表形式データの内容が表示される。データ修正部507は、表示した表形式データに対しユーザから修正の指示を受け付け、値を修正する。ここでは、1件ごとに修正を行うようにしてもよいし、複数の要素に対して一括して修正を行うようにしてもよい。本実施形態に係る表形式データ処理装置5は、スタンドアローンで動作するものとして説明するが、表形式データ処理装置とユーザ端末とがネットワークを介して接続されたクライアント-サーバ型のシステムを形成するようにしてもよい。
<装置構成>
 表形式データ処理装置5も、図3に示すようなコンピュータである。図3に示すコンピュータ1000は、CPU1001、主記憶装置1002、補助記憶装置1003、通信IF1004、入出力IF1005、ドライブ装置1006、通信バス1007を備えている。CPU1001は、プログラムを実行することにより本実施の形態に係る処理を行う。主記憶装置1002は、CPU1001が読み出したプログラムやデータをキャッシュしたり、CPUの作業領域を展開したりする。主記憶装置は、具体的には、RAMやROM等である。補助記憶装置1003は、CPU1001により実行されるプログラムや、本実施の形態で用いる設定情報などを記憶する。補助記憶装置1003は、具体的には、HDDやSSD、フラッシュメモリ等である。主記憶装置1002や補助記憶装置1003は、表形式データ処理装置5のデータ記憶部501として働く。通信IF1004は、他のコンピュータとの間でデータを送受信する。通信IF1004は、具体的には、有線又は無線のネットワークカード等である。表形式データ処理装置4は、通信IF1004を介してネットワークに接続されていてもよい。入出力IF1005は、入出力装置と接続され、ユーザから操作を受け付けたり、ユーザへ情報を提示したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ、タッチパネル等である。ドライブ装置1006は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。そして、以上のような構成要素が、通信バス1007で接続されている。なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素(例えば、通信IF1004、ドライブ装置1006等)を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置1006で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置1003、通信IF1004などを介して、本実施の形態で実行されるプログラムが提供されるようにしてもよい。そして、CPU1001がプログラムを実行することにより、図3に示したコンピュータを図90に示した表形式データ処理装置5として働かせる。
<データプロファイリング処理>
 図91は、データプロファイリング処理の一例を示す処理フロー図である。まず、表形式データ処理装置5のデータ入力部は、ユーザの指示を受けて表形式データを読み出す(図91:S301)。本ステップでは、上述の実施形態で説明した1以上の表形式データの指定を受け付ける。ここで、例えば図7Aや図41に示した設定画面において項目間の対応付けが定義された2以上の表形式データを入力としてもよい。この場合、設定に基づいて縦結合を実施した後の表形式データの和集合に対し、データプロファイリング処理が行われる。
 次に、表形式データ処理装置5の指示受付部503は、ユーザの操作に基づき、検証処理の対象となる項目及び検証方法の指定を受け付ける(S302)。本ステップでは、表形式データ処理装置5に接続された表示装置に「データ品質ツール設定」画面を表示し、ユーザからの指定を受け付ける。図92は、本ステップで表示する画面の一例である「データ品質ツール設定画面」を示す。まず、ユーザは、「抽出項目」のプルダウンメニューから実行する分析のカテゴリを選択する。ここでは、値が所定の表現形式(フォーマット)で記述されているか否かを判断するためのカテゴリを選択する。具体的には、カテゴリとして、「品質分析」、「検索分析」、「パターン分析」又は「品質管理グラフ」のいずれかを選択するものとする。図92の例では、「パターン分析」が選択されている。
 ここで、カテゴリ「品質分析」の場合は、値が指定された内容であるか否かによってグループ分けし、各グループに含まれる値の件数を集計して、結果を表すチャート(グラフ等の視覚的表示)を出力する。品質分析は、具体的な分析方法として「日付データの抽出」、「一意データの抽出」、「欠損データの抽出」及び「数値データの抽出」を含む。「日付データの抽出」が選択された場合は、さらに引数として項目の指定を受け付ける。そして、指定された項目の値が日付データであるか否か判断し、それぞれの件数を例えば円グラフに表す。日付データであるか否かの判断は、上述したデータクレンジングにおいて日付と判断する、GGGGyyMMdd(平成250110,H250110)、yyMMdd(130110)、yyyyMMdd(20130110)、GGGGyy年MM月dd日(平成25年01月10日,H25年01月10日)、yyyy年MM月dd日(2013年01月10日)、GGGGyy/MM/dd(平成25/01/10,H25/01/10)、yy/MM/dd(13/01/10)、yyyy/MM/dd(2013/01/10,2013/1/10 9:06:39)、yy-MM-dd(13-01-10)、GGGGyy-MM-dd(平成25-01-10,H25-01-10)、yyyy-MM-dd(2013-01-10)、yy年MM月dd日(13年01月10日)といった形式に該当するか否かによって行う。また、「一意データの抽出」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、指定された項目の値がそれぞれ一意であるか否か判断し、それぞれの件数を例えば円グラフで出力する。また、「欠損データの抽出」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、値が空(「Null」、「欠損」とも呼ぶ)であるか否かを判断し、それぞれの件数を例えば円グラフで出力する。また、「数値データの抽出」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、指定された項目の値がそれぞれ数値であるか否かを判断し、それぞれの件数を例えば円グラフで出力する。なお、通貨記号その他の単位を含む場合に数値と判断するか否か定めておくようにしてもよいし、数値と判断するか否か選択できるようにしてもよい。
 また、カテゴリ「検索分析」の場合は、指定した値を検索して該当するか否かによってグループ分けし、各グループに含まれる値の件数を集計して結果を示すチャートを表示する。検索分析は、具体的な分析方法として「後方一致データの抽出」、「前方一致データの抽出」及び「正規表現での抽出」を含む。「後方一致データの抽出」が選択された場合は、さらに引数として項目の指定及び検索する文字列を受け付ける。そして、指定された項目の値が指定した文字列と後方一致するか否かを判断し、それぞれの件数を例えば円グラフに表す。「前方一致データの抽出」が選択された場合も、さらに引数として項目の指定及び検索する文字列を受け付ける。そして、指定された項目の値が指定した文字列と前方一致するか否かを判断し、それぞれの件数を例えば円グラフに表す。また、「正規表現での抽出」が選択された場合は、さらに引数として項目の指定及び検索対象を表す正規表現を受け付ける。そして、指定された項目の値が、指定した正規表現が表す値と一致するか否かを判断し、それぞれの件数を例えば円グラフに表す。正規表現は、例えば図62に示した正規表現ユーザ辞書で用いた、一般的な正規表現を使用できるものとする。
 また、カテゴリ「パターン分析」の場合は、指定した項目に対応付けられている値をパターンによってグループ分けし、各グループに含まれる値の件数を集計して結果を示すチャートを表示する。パターン分析は、具体的な分析方法として「出現頻度」及び「データパターン化」を含む。「出現頻度」が選択された場合は、さらに引数として項目の指定を受け付ける。そして、指定された項目の値ごとにグループ分けし、それぞれの値の件数を例えば頻度によってソートした棒グラフで出力する。「データパターン化」が選択された場合も、さらに引数として項目の指定を受け付ける。そして、例えば、英字1文字を「W」、空白1つを「S」、数字1文字を「D」、マルチバイト文字1字を「A」、その他の記号等はその値として、データをパターン化し、同一のパターンごとにグループ分けして各グループに含まれる値の件数を例えば件数によってソートした棒グラフで出力する。すなわち、データパターンとは、英字、数字、マルチバイト文字等に値を分類し、出現順及び出現回数を類型化したものである。
 また、カテゴリ「品質管理グラフ」は、指定した項目に対応付けられている値を所定の範囲ごとにグループ分けし、各グループに含まれる値の件数を集計して結果を示すチャートを表示する。検索分析は、具体的な分析方法として「ヒストグラム(日付)」、「ヒストグラム(単位)」、「ヒストグラム(分割)」、「バブルチャート」、「ラインチャート(時系列)」及び「散布図」を含む。「ヒストグラム(日付)」が選択された場合は、さらに引数として項目の指定を受け付ける。そして、X軸に期間、Y軸に出現頻度を示すヒストグラムを出力する。なお、ビンの数と大きさは自動的に調整する。また、「ヒストグラム(単位)」が選択された場合は、さらに引数として項目及びビンの幅(ビン1つ当たりの範囲)の指定を受け付ける。そして、X軸に指定された項目の値、Y軸に出現頻度を示すヒストグラムを出力する。なお、X軸のビンの数と大きさは、指定されたビンの幅に基づいて調整する。また、「ヒストグラム(分割)」が選択された場合は、さらに引数として項目の指定及びX軸方向のビンの数を受け付ける。そして、X軸に指定された項目の値、Y軸に出現頻度を示すヒストグラムを出力する。また、「バブルチャート」が選択された場合は、さらに引数としてX軸、Y軸、Z軸それぞれの項目を受け付ける。そして、それぞれの項目の値に応じて、X座標及びY座標の位置にZ軸の大きさのバブルチャートを出力する。また、「ラインチャート(時系列)」が選択された場合は、さらに引数としてX軸の項目(日付形式)及びY軸の項目の指定を受け付ける。そして、X軸に示す日時順に示すY軸の値の推移を表すラインチャートを出力する。また、「散布図」が選択された場合は、さらに引数としてX軸の項目及びY軸の項目を受け付ける。そして、それぞれの項目の値に応じて、X座標及びY座標の位置にプロットした散布図を出力する。なお、それぞれの場合において、欠損値は、例えば「NaN(Not a Number:非数)」と出力する。
 S302においてカテゴリを選択すると、プルダウンメニューの下部に具体的な分析方法を表す「プロファイル名」が表示され、ユーザはいずれかのプロファイル名を選択する。なお、図92の例では、選択されたプロファイル名の背景をハッチングで強調している。すなわち、図92の例では、「出現頻度」が選択されている。そして、いずれかのプロファイル名が選択されると、データ品質設定画面の下部に引数の入力欄が表示される。図92の例では、項目名を選択するためのプルダウンメニューが表示されている。ユーザは、入力ファイルに含まれる項目名のいずれかを選択することができる。
 その後、表形式データ処理装置5の統計処理部504は、受け付けた処理の指示に基づいて統計処理を行う(S303)。図92の例において、値が「男」又は「女」である性別を保持する項目が引数として指定された場合、各値(「男」及び「女」)について件数を集計する。そして、統計処理部504は、それぞれの件数を示す棒グラフを生成する。
 そして、表形式データ処理装置5の統計情報出力部505は、集計した統計情報を出力する(S304)。ここで、統計情報とは、S303で算出した集計値及びS303で生成した棒グラフ(すなわち、チャート)の少なくともいずれかを含むものとする。図93は、統計情報を表示する「データ品質ツール」画面の一例である。図93の左側には、入力ファイルにおいて指定された項目に対応付けられている値を、それぞれ集計した結果を示す横棒グラフが表示されている。具体的には、男女それぞれの頻度(件数)が横棒の長さによって視覚的に表示されている。また、図93の右側上段には、集計結果の頻度を値ごとに示す表が表示されている。件数は左側の棒グラフと対応しており、男女それぞれの件数が数値で表示されている。なお、指定された項目の値について様々な統計量が算出され、画面の右側下段に表示されている。具体的には、統計量として、「合計」、「最大値」、「最小値」、「平均値」、「分散」、「標準偏差」、及び「NaN(非数の件数)」が算出される。図93の例では、「NaN」が19件であり、その他の統計量はすべてNaNとなっている。
 また、表形式データ処理装置5の入力データ表示部506は、S304で出力した統計情報の一部を指定する旨の入力を受け付け、対応する入力データを表示する(S305)。本ステップでは、図93に示す画面において、右側上段の統計情報においていずれかの値又はいずれかの頻度を示す数値を指定すると、画面の右側中段に、入力ファイルにおいて該当するレコード番号の一覧が表示される。図93の例では、右側上段の表において「女」が指定され、右側中段には性別の項目に「女」が登録されているレコードのレコード番号の一覧が表示されている。なお、統計情報の一部を指定する旨の入力は、画面左側の横棒のいずれかを指定することにより行ってもよい。図93は出現頻度を分析した例であり、S302において指示された検証方法に基づき、S304及びS305では、各集計値及び様々なチャートが出力される。
 その後、表形式データ処理装置5のデータ修正部507は、ユーザから入力データの修正指示を受け付け、入力データを修正する(S306)。本ステップでは、例えば図93の右側中段に表示された入力データのレコード番号のいずれかを選択することにより、例えば図38に示したような入力データにおける選択したレコードを表示し、値を修正できるようにしてもよい。また、一括して修正を反映させる旨の指示を受け付けるようにしてもよい。一括して修正を行う場合は、例えば上述した関数処理を用いて値を修正することができる。上述したように、関数処理によれば、所定の種類の文字を抽出したり、値の表現形式を標準化したりすることができる。仮に、図93の例において入力データの性別を示す項目に「男」及び「女」以外の値が登録されていた場合、当該値が図93の左側の棒グラフ及び右側上段の表に現れる。当該値が不適切である場合、ユーザは容易に問題のあるレコードを特定し、修正することができる。なお、修正後の入力データは、上書きして記録するようにしてもよいし、名前を付けて別のファイルとして保存するようにしてもよい。保存したファイルは、上述した縦結合処理、横結合処理、集計処理等に用いることができる。
 また、入力データの一括修正は、例示した関数処理以外によって行うこともできる。例えば、所定の文字列又は欠損データを、指定された文字列等に置換できるようにしてもよい。また、検索条件にはいわゆる正規表現を利用できるようにしてもよい。例えば、ある項目に対応付けて登録されている要素に対し、「*建設」のように後方一致で「建設」を検索し、索出された要素を「M建設」のような指定された文字列に置換できるようになる。
 以上により、データプロファイリング処理を終了する。なお、図91に示したフローチャートは一例であり、入力データの表示や入力データの修正等、一部の処理を実行しなくてもよい。データプロファイリング処理によれば、誤りや漏れ、重複等の不適切なデータを統計的手法によって可視化することにより、検出及び修正を支援することができる。特に、本実施形態に係る表形式データはデリミタによってレコードに含まれる要素が列に区切られたDSV(Delimiter Separated Values)形式のデータである。例えばRDBのようにスキーマ(メタデータ)が定義されているわけではないため、データ登録時のフォーマットチェックが困難である。すなわち、不適切なデータが登録されることもある。したがって、本実施形態に係るデータプロファイリング処理は、DSV形式のような入力データを扱う場合に特に有用であるといえる。
<変形例>
 図92及び図93の例では対象の項目及び分析方法を1つずつ指定して処理を行ったが、複数の項目を対象として複数の分析を行うようにしてもよい。この場合、例えば、図91のS302において、図92の代わりに図94のような画面を表示する。図94は、複数の項目を対象として複数の分析を実行可能な「データプロファイリング設定」画面の一例である。図94の例では、縦方向に分析方法を列挙し、横方向に表形式データに含まれる項目名の一覧が表示されている。そして、行と列とが交差する升目に設けられたチェックボックスにチェックを入れることにより、当該項目の値に対する当該分析方法による分析の実行を指定することができる。
 図94の例において、「日付の抽出」以外のチェックボックスにチェックを入れて設定し、データプロファイリングを実行すると、図91のS304では、例えば図95のような結果(「データプロファイリング」画面)が表示される。図95では、チェックを入れた項目と分析方法との組み合わせについて、集計値が表示されている。なお、図95の例では、統計量である、合計、最大値、最小値、平均値、分散、標準偏差、NaN(非数の件数)も、各項目について算出される。このような画面において、件数を指定することにより図93の右側中段に示したようなレコード番号のリストを表示するようにしてもよい。さらに、レコード番号のリストを選択することで、例えば図38に示したような入力データを表示し、値を修正できるようにしてもよい。変形例に係るデータプロファイリング処理によっても、誤りや漏れ、重複等の不適切なデータを統計的手法によって可視化することにより、検出及び修正を支援することができる。
1 表形式データ処理装置,101 データ記憶部,102 設定処理部,103 データ分割部,104 表示制御部,105 縦結合部,106 対照群生成部,107 横結合部,108 集計部,109 出力データ生成部
2 ユーザ端末
3 ネットワーク
4 表形式データ処理装置,401 データ記憶部,402 入出力部,403 制御部,404 縦結合部,405 横結合部,406 集計部,407 グループ化部,408検索部,409 外部連携部,410 バッチ処理部
5 表形式データ処理装置,501 データ記憶部,502 データ入力部,503 指示受付部,504 統計処理部,505 統計情報出力部,506 入力データ表示部,507 データ修正部

Claims (25)

  1.  複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを処理する装置であって、
     ユーザの操作に基づき、複数の前記表形式データにそれぞれ含まれる項目を対応付けて1つの表形式データを生成する縦結合処理を行う縦結合部と、
     ユーザの操作に基づき、生成された前記1つの表形式データに含まれる項目をキーとして当該1つの表形式データに含まれるレコードを集約する集約処理を行う集約部と、
     項目の構成が同一の表形式データに対して、前記縦結合処理及び前記集約処理を実行するための再実行情報として、前記項目の対応付けと前記キー項目とを少なくとも記憶装置に記憶させる制御部と、
     を有する表形式データ処理装置。
  2.  ユーザの操作に基づき、同一概念の関係、又は上位概念及び下位概念の関係にある語句の登録を受け付ける辞書登録部
     をさらに有し、
     前記集約部は、前記キーとされた項目に対応する要素が同一概念の関係にあるレコード、又は上位概念及び下位概念の関係にあるレコードを集約する
     請求項1に記載の表形式データ処理装置。
  3.  ユーザの操作に基づき、前記再実行情報と、当該再実行情報に従って処理を実行する時刻とを少なくとも含むスケジュール情報を前記記憶装置に記憶させるスケジュール設定部と、
     前記スケジュール情報に基づいて、前記スケジュール情報に設定された時刻に前記再実行情報が規定する縦結合処理及び集約処理を行うバッチ処理部と、
     をさらに有する請求項1又は2に記載の表形式データ処理装置。
  4.  前記縦結合処理及び前記集約処理の実行順序をグラフィカルに表示するとともに、前記縦結合処理を実行するための設定である前記項目の対応付け、前記集約処理を実行するための設定であるキー項目、又は縦結合処理もしくは集約処理に入力される表形式データの前記項目の構成もしくは出力される表形式データの前記項目の構成を表示する表示部
     をさらに有する請求項1から3のいずれか一項に記載の表形式データ処理装置。
  5.  複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを処理する方法であって、
     ユーザの操作に基づき、複数の前記表形式データにそれぞれ含まれる項目を対応付けて1つの表形式データを生成する縦結合処理を行う縦結合ステップと、
     ユーザの操作に基づき、生成された前記1つの表形式データに含まれる項目をキーとして当該1つの表形式データに含まれるレコードを集約する集約処理を行う集約ステップと、
     項目の構成が同一の表形式データに対して、前記縦結合処理及び前記集約処理を実行するための再実行情報として、前記項目の対応付けと前記キー項目とを少なくとも記憶装置に記憶させるステップと、
     をコンピュータが実行する表形式データ処理方法。
  6.  複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを処理するプログラムであって、
     ユーザの操作に基づき、複数の前記表形式データにそれぞれ含まれる項目を対応付けて1つの表形式データを生成する縦結合処理を行う縦結合ステップと、
     ユーザの操作に基づき、生成された前記1つの表形式データに含まれる項目をキーとして当該1つの表形式データに含まれるレコードを集約する集約処理を行う集約ステップと、
     項目の構成が同一の表形式データに対して、前記縦結合処理及び前記集約処理を実行するための再実行情報として、前記項目の対応付けと前記キー項目とを少なくとも記憶装置に記憶させる制御ステップと、
     をコンピュータに実行させる表形式データ処理プログラム。
  7.  複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する装置であって、
     複数の入力テーブルにそれぞれ含まれる項目と、出力テーブルに含まれる項目との対応付けの指定を受け付ける設定処理部と、
     前記出力テーブルに含まれる項目の一覧を表示する一覧領域と、前記集約に用いるキー項目を表示するキー指定領域とを表示する表示制御部と、
     前記一覧領域に表示された項目を前記キー指定領域へドラッグするユーザの操作により、キー項目の指定を受け付けるキー設定部と、
     指定された前記キー項目の値が所定の条件を満たす前記入力テーブルのレコードを集約し、前記出力テーブルを生成する出力部と、
     を有する表形式データ処理装置。
  8.  前記キー項目の各々について、レコードを集約するための条件の指定を受け付けるキー設定部と、
     前記条件が指定されたキー項目の表示態様を、条件の指定が完了したことを示す所定の表示態様に変更する第1表示変更部と、
     をさらに有する請求項7に記載の表形式データ処理装置。
  9.  前記表示制御部は、前記集計対象の項目を表示する集計項目領域をさらに表示し、
     前記一覧領域に表示された項目を前記集計項目領域へドラッグするユーザの操作により、集計項目の指定を受け付ける集計項目指定部と、
     指定された前記集計項目に対して、集計方法の指定を受けつける集計方法指定部と、
     前記集計項目領域において、前記集計方法が指定された前記集計対象の項目の表示態様を、集計方法の指定が完了したことを示す所定の表示態様に変更する第2表示変更部と、
     をさらに有する請求項7又は8に記載の表形式データ処理装置。
  10.  前記集計項目指定部は、前記集計項目として、新たな項目の生成の要求を受け付けるとともに、前記集計項目領域において、前記集計項目を、順序を表す所定の方向に沿って一列に表示し、
     前記集計方法指定部は、前記新たな項目の集計方法として、前記一覧領域の項目及び前記集計項目領域において当該新たな項目よりも順序が先の集計項目の少なくともいずれかを用いて、当該新たな項目の要素を決定する計算式又は条件式の指定を受け付ける
     請求項7から9のいずれか一項に記載の表形式データ処理装置。
  11.  前記キー設定部は、指定された前記キー項目を、順序を表す所定の方向に沿って一列に表示するとともに、ユーザのドラッグ操作に応じて前記キー項目の順序を変更し、
     前記出力部は、前記キー項目の値が所定の条件を満たす、前記入力テーブルのレコードを、前記キー項目の順序にしたがって複数のキーによるソートを行い、前記出力テーブルを生成する
     請求項7から10のいずれか一項に記載の表形式データ処理装置。
  12.  複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する方法であって、
     複数の入力テーブルにそれぞれ含まれる項目と、出力テーブルに含まれる項目との対応付けの指定を受け付けるステップと、
     前記出力テーブルに含まれる項目の一覧を表示する一覧領域と、前記集約に用いるキー項目を表示するキー指定領域とを表示する表示ステップと、
     前記一覧領域に表示された項目を前記キー指定領域へドラッグするユーザの操作により、キー項目の指定を受け付けるキー指定ステップと、
     指定された前記キー項目の値が所定の条件を満たす前記入力テーブルのレコードを集約し、前記出力テーブルを生成する出力ステップと、
     をコンピュータが実行する表形式データ処理方法。
  13.  複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成するプログラムであって、
     複数の入力テーブルにそれぞれ含まれる項目と、出力テーブルに含まれる項目との対応付けの指定を受け付ける設定処理ステップと、
     前記出力テーブルに含まれる項目の一覧を表示する一覧領域と、前記集約に用いるキー項目を表示するキー指定領域とを表示する表示制御ステップと、
     前記一覧領域に表示された項目を前記キー指定領域へドラッグするユーザの操作により、キー項目の指定を受け付けるキー設定ステップと、
     指定された前記キー項目の値が所定の条件を満たす前記入力テーブルのレコードを集約し、前記出力テーブルを生成する出力ステップと、
     をコンピュータに実行させる表形式データ処理プログラム。
  14.  複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する装置であって、
     前記入力テーブルに基づいて、項目の順序に対応付けられている要素を抽出し、前記表形式データにおけるレコードの順序と対応付けて前記項目ごとに保持する項目別データを生成する項目別データ生成部と、
     前記項目別データに含まれる要素を集約し、集約後の項目別データから出力テーブルを生成する出力テーブル生成部と、
     を有する表形式データ処理装置。
  15.  前記項目別データを用いて、所定の条件を満たす複数の要素に対応する、前記レコードの順序の集合を生成する順序集合生成部
     をさらに有し、
     出力テーブル生成部は、前記集合に属する順序に基づいて前記項目別データに含まれる要素を集約する
     請求項14に記載の表形式データ処理装置。
  16.  複数の表形式データ間における項目の対応付けを表すデータに基づいて、複数の表形式データの前記項目別データの和集合を生成する縦結合部
     をさらに有し、
     前記順序集合生成部は、前記項目別データの和集合を用いて、前記レコードの順序の集合を生成する
     請求項15に記載の表形式データ処理装置。
  17.  前記集合に属する順序に基づいて集約される要素に異なる値が存在する場合、前記集約後の項目別データには、前記異なる値を結合した要素を登録する
     請求項15又は16に記載の表形式データ処理装置。
  18.  前記集約後の項目別データを用いて、第2の所定条件を満たす複数の要素に対応する、前記レコードの順序の集合を生成する第2順序集合生成部
     をさらに有し、
     前記出力テーブル生成部は、前記第2順序集合生成部が生成した前記集合に属する順序に基づいて前記集約後の項目別データに含まれる要素をさらに集約し、集約後の項目別データから出力テーブルを生成する
     請求項15から17のいずれか一項に記載の表形式データ処理装置。
  19.  複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成する方法であって、
     前記入力テーブルに基づいて、項目の順序に対応付けられている要素を抽出し、前記表形式データにおけるレコードの順序と対応付けて前記項目ごとに保持する項目別データを生成するステップと、
     前記項目別データに含まれる要素を集約し、集約後の項目別データから出力テーブルを生成する出力テーブル生成ステップと、
     をコンピュータが実行する表形式データ処理方法。
  20.  複数の項目に対応する複数の要素を含むレコードが複数登録される表形式データについて、入力される表形式データである入力テーブルに含まれるレコードを集約し、出力する表形式データである出力テーブルを生成するプログラムであって、
     前記入力テーブルに基づいて、項目の順序に対応付けられている要素を抽出し、前記表形式データにおけるレコードの順序と対応付けて前記項目ごとに保持する項目別データを生成する項目別データ生成ステップと、
     前記項目別データに含まれる要素を集約し、集約後の項目別データから出力テーブルを生成する出力テーブル生成ステップと、
     をコンピュータに実行させる表形式データ処理プログラム。
  21.  複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する表形式データ処理装置であって、
     所定の規則に基づいてグループに分類した、所定の項目に対応する前記要素の件数を、前記グループごとに集計し、集計結果を出力する集計部と、
     前記入力データから、前記集計結果における前記グループのいずれかに分類された要素を含むレコードを抽出して出力する出力部と、
     出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更する修正部と、
     を有する実行させる表形式データ処理装置。
  22.  前記所定の規則に基づく分類は、前記要素を記述する表現形式に基づく分類である
     請求項21に記載の表形式データ処理装置。
  23.  複数の表形式データ間における項目の対応付けを示すデータに基づいて、複数の表形式データの和集合を生成する縦結合部
     をさらに有し、
     前記集計部は、前記表形式データの和集合を前記入力データとする
     請求項21又は22に記載の表形式データ処理装置。
  24.  複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する表形式データ処理方法であって、
     所定の規則に基づいてグループに分類した、所定の項目に対応する前記要素の件数を、前記グループごとに集計し、集計結果を出力する集計ステップと、
     前記入力データから、前記集計結果における前記グループのいずれかに分類された要素を含むレコードを抽出して出力するステップと、
     出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更するステップと、
     をコンピュータが実行する表形式データ処理方法。
  25.  複数の項目にそれぞれ対応する複数の要素を含むレコードが複数登録される表形式データを入力データとして処理する表形式データ処理プログラムであって、
     所定の規則に基づいてグループに分類した、所定の項目に対応する前記要素の件数を、前記グループごとに集計し、集計結果を出力する集計ステップと、
     前記入力データから、前記集計結果における前記グループのいずれかに分類された要素を含むレコードを抽出して出力する出力ステップと、
     出力されたレコードに含まれる要素について変更の要求を受け、当該要素を変更する修正ステップと、
     をコンピュータに実行させる表形式データ処理プログラム。
PCT/JP2014/062498 2013-06-26 2014-05-09 表形式データ処理プログラム、方法及び装置 WO2014208205A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015523912A JP6623754B2 (ja) 2013-06-26 2014-05-09 表形式データ処理プログラム、方法及び装置

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2013134184A JP5497948B1 (ja) 2013-06-26 2013-06-26 表形式データ処理プログラム、方法及び装置
JP2013-134183 2013-06-26
JP2013134183A JP5497947B1 (ja) 2013-06-26 2013-06-26 表形式データ処理プログラム、方法及び装置
JP2013-134184 2013-06-26
JP2013212378A JP6283190B2 (ja) 2013-10-09 2013-10-09 表形式データ処理プログラム、方法、及び装置
JP2013-212378 2013-10-09

Publications (1)

Publication Number Publication Date
WO2014208205A1 true WO2014208205A1 (ja) 2014-12-31

Family

ID=52141558

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/062498 WO2014208205A1 (ja) 2013-06-26 2014-05-09 表形式データ処理プログラム、方法及び装置

Country Status (2)

Country Link
JP (1) JP6623754B2 (ja)
WO (1) WO2014208205A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017072957A (ja) * 2015-10-06 2017-04-13 前田建設工業株式会社 ファイル編集方法、ファイル編集装置及びファイル編集プログラム
JP2019159837A (ja) * 2018-03-13 2019-09-19 日本電気株式会社 データベース結合装置、データベース結合方法及びデータベース結合プログラム
WO2020188670A1 (ja) * 2019-03-15 2020-09-24 株式会社日立製作所 データ統合評価システム及びデータ統合評価方法
US10885011B2 (en) 2015-11-25 2021-01-05 Dotdata, Inc. Information processing system, descriptor creation method, and descriptor creation program
US11514062B2 (en) 2017-10-05 2022-11-29 Dotdata, Inc. Feature value generation device, feature value generation method, and feature value generation program
US11727203B2 (en) 2017-03-30 2023-08-15 Dotdata, Inc. Information processing system, feature description method and feature description program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034246A (ja) * 2009-07-30 2011-02-17 Fujitsu Ltd データ変換装置、データ変換方法、およびデータ変換プログラム
US20120166385A1 (en) * 2010-12-28 2012-06-28 Devadoss Madan Gopal Data loading method for a data warehouse

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034246A (ja) * 2009-07-30 2011-02-17 Fujitsu Ltd データ変換装置、データ変換方法、およびデータ変換プログラム
US20120166385A1 (en) * 2010-12-28 2012-06-28 Devadoss Madan Gopal Data loading method for a data warehouse

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Data Cleansing Tool Jisho Kino de Data no Futoitsu o Kaisho Suhyakko o Koeru DB no Togo o Shien", NETWORK COMPUTING, vol. 11, no. 10, 1 October 1999 (1999-10-01), pages 86 - 91 *
MOTOAKI NISHIWAKI: "Data Governance 'Data no Yuko Katsuyo' to 'Fusei Access no Boshi' ni Mukete, Architect ga Kangaeru beki Koto", IT ARCHITECT, vol. 17, 4 June 2008 (2008-06-04), pages 41 - 58 *
RIE YAMADA: "FAQ Rie no Gyomukei Access Kaihatsu Recipe", DB MAGAZINE, vol. 12, no. 14, 1 January 2003 (2003-01-01), pages 204 - 210 *
TORU MORIYAMA: "Big Data Sodatsu Database Jintori Gassen", NIKKEI COMPUTER, no. 816, 30 August 2012 (2012-08-30), pages 56 - 65 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017072957A (ja) * 2015-10-06 2017-04-13 前田建設工業株式会社 ファイル編集方法、ファイル編集装置及びファイル編集プログラム
US10885011B2 (en) 2015-11-25 2021-01-05 Dotdata, Inc. Information processing system, descriptor creation method, and descriptor creation program
US11727203B2 (en) 2017-03-30 2023-08-15 Dotdata, Inc. Information processing system, feature description method and feature description program
US11514062B2 (en) 2017-10-05 2022-11-29 Dotdata, Inc. Feature value generation device, feature value generation method, and feature value generation program
JP2019159837A (ja) * 2018-03-13 2019-09-19 日本電気株式会社 データベース結合装置、データベース結合方法及びデータベース結合プログラム
WO2020188670A1 (ja) * 2019-03-15 2020-09-24 株式会社日立製作所 データ統合評価システム及びデータ統合評価方法

Also Published As

Publication number Publication date
JP6623754B2 (ja) 2019-12-25
JPWO2014208205A1 (ja) 2017-02-23

Similar Documents

Publication Publication Date Title
JP6857689B2 (ja) データ検索装置、プログラム、及び記録媒体
JP6283190B2 (ja) 表形式データ処理プログラム、方法、及び装置
JP6623754B2 (ja) 表形式データ処理プログラム、方法及び装置
US11023656B2 (en) Method and system for dynamically configuring a user interface for a specified document review task
US11593408B2 (en) Identifying data relationships from a spreadsheet
CN107111639B (zh) 构建报表
CN106796578A (zh) 知识自动化系统
CN101297268A (zh) 用于设计自动业务过程应用程序的集成系统、工具和方法
WO2005050447A1 (ja) バッチ処理装置
KR101505858B1 (ko) 대용량 데이터를 용이하게 분석하기 위하여 테이블 관계 및 참조의 템플릿을 검색하여 제공하는 템플릿 기반 온라인 분석보고서 작성 지원 시스템
US20120117093A1 (en) Method and system for fusing data
CN111241176A (zh) 一种数据治理管理系统
WO2022215276A1 (ja) データ抽出装置、データ抽出方法、データ抽出プログラム、データ抽出支援装置、データ抽出支援方法、データ抽出支援プログラム
JP5470308B2 (ja) 法令分析支援装置、法令分析支援方法、及び法令分析支援プログラム
JP5497948B1 (ja) 表形式データ処理プログラム、方法及び装置
JP6244521B2 (ja) データベース処理プログラム、データベース処理方法及びデータベース処理装置
JP6763967B2 (ja) データ変換装置とデータ変換方法
JPH10171655A (ja) データ処理システム
JP5497947B1 (ja) 表形式データ処理プログラム、方法及び装置
JP7411489B2 (ja) 生産知識管理システム、生産知識管理方法及び生産知識管理プログラム
JP5916974B1 (ja) データ検索装置、プログラム、及び記録媒体
Chatvichienchai Automatic metadata extraction and classification of spreadsheet documents based on layout similarity
JP6810347B2 (ja) アプリケーション作成支援システム
JP5971571B2 (ja) 構造文書管理システム、構造文書管理方法及びプログラム
JP2022097358A (ja) クエリバインディング機能を備えたオンラインレポート作成システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14817509

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015523912

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14817509

Country of ref document: EP

Kind code of ref document: A1