WO2013150633A1 - 文書処理システム、及び、文書処理方法 - Google Patents

文書処理システム、及び、文書処理方法 Download PDF

Info

Publication number
WO2013150633A1
WO2013150633A1 PCT/JP2012/059345 JP2012059345W WO2013150633A1 WO 2013150633 A1 WO2013150633 A1 WO 2013150633A1 JP 2012059345 W JP2012059345 W JP 2012059345W WO 2013150633 A1 WO2013150633 A1 WO 2013150633A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
document
dictionary
extracted
character string
Prior art date
Application number
PCT/JP2012/059345
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
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2012/059345 priority Critical patent/WO2013150633A1/ja
Publication of WO2013150633A1 publication Critical patent/WO2013150633A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms

Definitions

  • the present invention relates to a document processing system, and more particularly to a document processing system that generates a synonym dictionary.
  • Non-Patent Document 1 and Patent Document 1 are techniques for generating a synonym dictionary based on a large number of documents. By generating a synonym dictionary based on a large number of documents, document search and document classification can be performed with high accuracy.
  • “synonyms” and “synonyms” are treated as the same meaning.
  • “synonyms” are words with similar meanings
  • “synonyms” are words with the same meaning (different)
  • examples of “synonyms” are “house” and “house”
  • “Speak” and “speak” are examples
  • “synonyms” are also defined as “mountain climbing” and “mountain climbing”.
  • the method of creating a synonym dictionary and the method of creating a synonym dictionary can be treated as the same method in the following, so the word “synonym” below includes the meaning of “synonym”. I will do it.
  • a company generally includes a plurality of employees (including employers, hereinafter referred to as users). Many documents are generated by employees included in the company. For this reason, the in-company system can generate a synonym dictionary with high accuracy by using many generated sentences and the technology such as Patent Document 1.
  • the document sharing system is, for example, a document sharing system based on NAS (Network Attached Storage), and is a system in which many employees can share a document file.
  • NAS Network Attached Storage
  • the synonym dictionary generated in the company system should be generated for each user in the company. This is because the documents that can be browsed are different for each user in the company. Specifically, when the user 2 cannot browse the document generated by the user 1, the synonym dictionary generated using the document generated by the user 1 includes a word that cannot be assumed that the user 2 is a synonym as a synonym. This is because there is a possibility of being.
  • ACL Access Control List
  • Non-Patent Document 1 and Patent Document 1 do not take into account such a system in which the authority to view a document varies depending on the user. That is, the techniques described in Patent Document 1 and Non-Patent Document 1 output a synonym dictionary based on an input document, and do not generate a synonym dictionary for each user. For this reason, when the techniques described in Non-Patent Document 1 and Patent Document 1 are used as they are in a system of a company or the like, information leakage from a document may occur.
  • a document processing system to which a plurality of documents generated by a plurality of users are input, the document processing system including a processor and a memory, and the memory includes the input And an access list indicating users who can view each document, and the document processing system extracts a plurality of character strings according to a predetermined standard from the plurality of documents. Calculating the frequency at which the information indicated by each extracted character string appears in each of the plurality of documents held in the memory, and extracting each character string extracted from each document that can be viewed by each user; A frequency of occurrence of the information indicated by each extracted character string, and a learning data set for each user is generated, and based on the generated learning data set for each user, It generates each user of the synonym dictionary.
  • a synonym dictionary with high accuracy can be generated and information leakage can be prevented.
  • One method for generating a synonym dictionary is a method in which a document sharing system generates a synonym dictionary only from documents that a user can view based on ACL. For example, the document sharing system generates user A's synonym dictionary from a document that user A can view.
  • the document sharing system can also generate a synonym dictionary with the authority of the system administrator.
  • the authority of the system administrator is an authority that can view documents of all users. Therefore, the document sharing system can use all target documents as learning data for generating a synonym dictionary without using ACL information.
  • the synonym dictionary generated by the document sharing system is a synonym dictionary including the same synonym for any user.
  • the synonym dictionary generated by the document sharing system is a synonym dictionary including the same synonym for any user. For example, when the user 1 uses a synonym dictionary, a word included in a document that is permitted to be browsed only by another user 2 is searched, and the user 1 estimates the contents of the user 2 document. May be possible.
  • the synonym dictionary system 100 in the first embodiment calculates the frequency of occurrence of the same sentence in all documents generated by the user. And the synonym dictionary system 100 in 1st Embodiment produces
  • FIG. 1 is a block diagram showing a configuration of a synonym dictionary system 100 according to the first embodiment of the present invention.
  • the synonym dictionary system 100 is a system connected to a document sharing system used by a plurality of users or a system provided in a document sharing system used by a plurality of users.
  • the synonym dictionary system 100 includes a processor 101, a main storage device 102, an input / output device 103, a network device 107, and an auxiliary storage device 110.
  • the processor 101 reads data or a program stored in the auxiliary storage device 110 into the main storage device 102 and executes the read program in the main storage device 102.
  • the processor 101 is an arithmetic device such as a CPU.
  • the processor 101 reads out the program and data from the main storage device 102 and executes them.
  • the processor 101 reads a program and data from the auxiliary storage device 110 and inputs data to the auxiliary storage device 110 as necessary in executing the program. Further, the processor 101 reads a program and data from a storage device or the like connected via the network device 107 as necessary, and inputs data to a storage device or the like connected via the network device 107.
  • the processor 101 is connected to the main storage device 102, the auxiliary storage device 110, the input / output device 103, and the network device 107.
  • the main storage device 102 is a storage device for temporarily storing data, programs, and the like.
  • the main storage device 102 holds an OS (Operating System) 111 and a data management program 112.
  • the main storage device 102 is connected to the processor 101.
  • the input / output device 103 is an input device for a user or an administrator to input data into the synonym dictionary system, and an output device for displaying a document search result or the like to the user or the administrator.
  • the input / output device 103 includes a display 104, a keyboard 105, and a mouse 106.
  • the input / output device 103 is connected to the processor 101.
  • the network device 107 is a network interface for connecting the storage device of the document sharing system and the synonym dictionary system when the storage device of the document sharing system is arranged outside the synonym dictionary system.
  • the network device 107 is connected to the processor 101.
  • the auxiliary storage device 110 is a storage device for holding data or programs, such as a disk device.
  • the auxiliary storage device 110 includes a text database 113, a full text DB 116, a learning data set 117, and a synonym dictionary 118.
  • the auxiliary storage device 110 is connected to the processor 101.
  • the text database 113 includes a processing target document 114 and ACL information 115.
  • OS 111 is basic software for operating the synonym dictionary system 100.
  • the data management program 112 has a function of generating a synonym dictionary 118 for each user.
  • the data management program 112 is a program that returns a synonym of the requested search character string to the user or the program in accordance with the search character string requested by the user or the program.
  • the data management program 112 has a full text DB generation program 601, a dictionary generation program 122, and a dictionary search program 125.
  • the full text DB generation program 601 has a function for generating the full text DB 116.
  • the dictionary generation program 122 has a function for generating the synonym dictionary 118.
  • the dictionary search program 125 has a function of searching for a synonym from the synonym dictionary 118 according to a search request from the program or the user, and transmitting the searched synonym as a reply to the search request to the program or the user.
  • the text database 113 holds the processing target document 114 and the ACL information 115.
  • the processing target document 114 includes a plurality of documents for extracting synonyms in order to generate the synonym dictionary 118. That is, the processing target document 114 is a document generated by each user.
  • the ACL information 115 is information indicating a document that can be browsed by each user.
  • the text database 113 may be the same as the shared document storage device in the document sharing system.
  • a document generated by each user is stored in a shared document storage device in the document sharing system.
  • the data management program 112 may acquire a document from a shared document storage device in the document sharing system and store it in the text database 113 as a processing target document 114. Further, the data management program 112 may virtually store the processing target document 114 in the text database 113 by storing the document pointer in the text database 113 in the shared document storage device in the document sharing system.
  • the data management program 112 may acquire a document personally owned by the user via the network device 107 and store it in the text database 113 as the processing target document 114.
  • the data management program 112 may store the processing target document 114 virtually in the text database 113 by storing in the text database 113 a pointer indicating the storage location of the document that the user personally owns. .
  • the full text DB 116 is a DB in which all sentences included in the processing target document 114 and the ACL are stored in association with each other.
  • the learning data set 117 is information obtained by dividing the full text DB 116 for each sentence that can be browsed by the user in accordance with the ACL.
  • the synonym dictionary 118 is information for each user generated based on the learning data set 117.
  • the learning data set 117 and the synonym dictionary 118 are generated for each user.
  • the synonym dictionary system 100 may not have the input / output device 103 or the network device 107.
  • the data management program 112 may store only data acquired via the network device 107 in the text database 113.
  • the synonym dictionary system 100 does not have the network device 107, the data management program 112 may store only the data input from the input / output device 103 in the text database 113.
  • the synonym dictionary system 100 is requested by a program or a user for a synonym, but the program that requests a synonym may be a program (not shown) included in the synonym dictionary system 100 or a program included in another device.
  • the program that requests a synonym is a program that another device has, the program that requests a synonym transmits a request to the synonym dictionary system 100 via the network device 107.
  • the user requesting the synonym may input the request to the synonym dictionary system 100 via the input / output device 103 or may input the request to the synonym dictionary system 100 via the network device 107.
  • each program included in the synonym dictionary system 100 may be implemented by hardware such as an integrated circuit.
  • the functions of the above-described programs may be executed by interpreting a program that realizes each function by a processor.
  • a program, a table, a file, and the like for realizing each function of the present embodiment are a flash memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC card, an SD card, or
  • the synonym dictionary system 100 may be installed using a recording medium such as a DVD.
  • each program included in the synonym dictionary system 100 may be implemented by a single program, or may be implemented by being divided into a plurality of programs for each unit of processing executed in each program.
  • FIG. 2 is an explanatory diagram illustrating documents stored in the processing target document 114 according to the first embodiment of this invention.
  • the processing target document 114 includes a plurality of documents generated by a plurality of users.
  • the processing target document 114 shown in FIG. 2 includes a document group 202 generated by the employee A and a document group 203 generated by the president.
  • the processing target document 114 includes a plurality of documents 204, a document 206, and a document 207 generated by the employee A (user ID “2001”) in the document group 202, and the president (user ID “1001” in the document group 203.
  • the document 205 generated by “)” is included.
  • the document group 203 shown in FIG. 2 includes only the document 205, but may include a plurality of documents. Further, the processing target document 114 may include documents generated by a plurality of users in addition to the document group 202 corresponding to the employee A and the document group 203 corresponding to the president.
  • Document 204 includes a plurality of sentences indicating an inspection report.
  • the document 205 includes four sentences indicating the merger plan.
  • the document 206 includes one document indicating a review document.
  • the document 207 includes one sentence indicating an article posted on the in-house blog.
  • the document 204, the document 205, the document 206, and the document 207 may include more sentences than the sentences shown in FIG.
  • the sentence in this embodiment is a character string delimited by a period (".") In Japanese, and a character string delimited by a period (".") In English.
  • identifiers for uniquely identifying the documents are assigned to the documents 204 to 207 in advance.
  • the sentence included in the document 204 and the sentence included in the document 205 have the same meaning in some sentences, but the meanings of some sentences are different.
  • the document group 203 generated by the president is not permitted to be viewed by the employee A.
  • the dictionary generation program 122 cannot use the document 205 as learning data for generating the synonym dictionary 118 of the employee A.
  • the fourth sentence in document 205 “These inspection results are better than Y's factory at Company X, which is advantageous for the acquisition of Company X.” Contains information that is not allowed.
  • the synonym dictionary 118 of the employee A is generated using such a sentence, there is a possibility that the employee A can guess the contents of the document group 203 generated by the president from the contents of the synonym dictionary 118 of the employee A.
  • the data management program 112 calculates the frequency of occurrence of the same sentence as the sentence of the employee A among all sentences that the employee A is allowed to read, including sentences created by other users.
  • the synonym dictionary 118 is generated according to the frequency. Thereby, the data management program 112 can increase the amount of learning data for generating the synonym dictionary 118 of the employee A. Then, the data management program 112 can accurately generate the synonym dictionary 118 of the employee A.
  • FIG. 3 is an explanatory diagram illustrating the ACL information 115 according to the first embodiment of this invention.
  • the ACL information 115 is information generated by the system at the time of creating a file or generated in advance by an administrator or the like.
  • the ACL information 115 includes a document name 1501 and ACL information 1502.
  • the ACL information 115 shown in FIG. 3 includes rows 1503 to 1506.
  • the document name 1501 indicates an identifier of each document included in the processing target document 114.
  • the ACL information 1502 includes a user ID of a user who can view the document indicated by the document name 1501.
  • the document 204 is a user with a user ID “1001” (ie, a president) and a user with a user ID “2001”. (Ie, employee A) is allowed to browse.
  • the document 205 is permitted to be viewed only by the user (that is, the president) whose user ID is “1001”. .
  • FIG. 4 is an explanatory diagram illustrating the full text DB 116 according to the first embodiment of this invention.
  • the full text DB 116 is generated by processing of a full text DB generation program 601 described later.
  • the full-text DB 116 is used at the timing when an instruction is given by the administrator, at a regular timing, or at the timing when a system event occurs such as when a file is created or updated or the system becomes idle. Generated.
  • the full text DB 116 includes a sentence 301, an ACL 302, and a frequency 303.
  • the full text DB 116 shown in FIG. 4 includes lines 304 to 309.
  • the sentence 301 includes a character string of the sentence included in the processing target document 114.
  • the ACL 302 includes a user ID of a user who can view the text stored in the text 301.
  • the sentence 301 in the row 304 indicates a sentence that can be browsed by users having user IDs “1001” and “2001”.
  • the sentence 301 in the row 307 indicates a sentence that can be browsed by a user whose user ID is “2001”.
  • the frequency 303 indicates the number of times the sentence shown in the sentence 301 appears in all the documents included in the processing target document 114.
  • the frequency 303 in the row 304 indicates that the same two sentences as the sentence indicated by the sentence 301 in the line 304 have appeared in the processing target document 114.
  • the frequency 303 of the line 307 indicates that the same sentence as the sentence indicated by the sentence 301 of the line 307 has appeared in the processing target document 114.
  • FIG. 5 is an explanatory diagram showing the learning data set 117 according to the first embodiment of this invention.
  • the learning data set 117 is a table that holds, for each user, sentences that can be viewed by each user extracted from the full-text DB 116.
  • a learning data set 117 shown in FIG. 5 is a learning data set 117 of the employee A (user ID “2001”), and includes sentences that the employee A can view.
  • the dictionary generation program 122 generates the learning data set 117 shown in FIG. 5 for each user.
  • the learning data set 117 includes a sentence 1101 and a frequency 1102. Further, the learning data set 117 shown in FIG. 5 includes rows 1103 to 1107.
  • the sentence 1101 indicates a sentence that can be browsed by the user.
  • the character string stored in the sentence 1101 corresponds to the character string stored in the sentence 301 of each user in the full sentence DB 116.
  • the sentence 1101 shown in FIG. 5 corresponds to the sentence 301 shown in FIG.
  • the frequency 1102 indicates the number of times that the same sentence as the sentence 1101 appears in all the documents included in the processing target document 114.
  • the frequency 1102 includes the same value as the value of the frequency 303 of the full text DB 116.
  • the frequency 1102 shown in FIG. 5 corresponds to the frequency 303 shown in FIG.
  • the row 1103 corresponds to the row 304 shown in FIG.
  • a row 1106 corresponds to the row 307 shown in FIG.
  • FIG. 6 is an explanatory diagram illustrating the synonym dictionary 118 according to the first embodiment of this invention.
  • the synonym dictionary 118 is a synonym dictionary for each user generated based on the learning data set 117.
  • the dictionary generation program 122 generates a synonym dictionary 118 for each user.
  • the synonym dictionary 118 shown in FIG. 6 is the synonym dictionary 118 of the employee A (user ID “2001”).
  • the synonym dictionary 118 includes a headword 1301 and a synonym 1302.
  • the synonym dictionary 118 shown in FIG. 6 includes lines 1303 to 1307.
  • the dictionary generation program 122 generates the synonym dictionary 118 from the learning data set 117 using the technique proposed in Non-Patent Document 1 or Patent Document 1.
  • the headword 1301 is a headword.
  • the synonym 1302 indicates a list of words similar to the headword.
  • FIG. 7 is a flowchart showing a process 600 for generating the full-text DB 116 by the full-text DB generation program 601 according to the first embodiment of this invention.
  • the full text DB generation program 601 When the full text DB generation program 601 is started by the dictionary generation program 122, it determines whether or not the processing after step 502 has been performed on all the documents stored in the processing target document 114 (501). If all the documents stored in the processing target document 114 are subjected to the processing from step 502 onward, the full-text DB generation program 601 ends the processing 600 shown in FIG.
  • the full-text DB generation program 601 has not yet performed the processing in and after step 502 from the processing target document 114. Get one document.
  • the document acquired here will be referred to as document A below.
  • the full-text DB generation program 601 extracts a line of the ACL information 115 including the identifier of the document A in the document name 1501, and specifies a user ID of a user who is permitted to view the document A from the extracted ACL information 1502 To do. Then, the full-text DB generation program 601 stores the user ID of the identified user in the first user list variable (502).
  • the first user list variable is a variable temporarily stored in the main storage device 102 in the first embodiment, and is a variable for performing the processing shown in FIG.
  • a plurality of user IDs may be stored in the first user list variable.
  • the full-text DB generation program 601 determines whether or not the processing after step 504 has been executed for all sentences included in the document A (503). When the processing after step 504 is executed for all sentences included in the document A, the full-text DB generation program 601 performs the processing after step 502 on the document for which the processing after step 502 has not been performed. Return to 501.
  • the full-text DB generation program 601 acquires a sentence from which the process after step 504 is not executed from the document A.
  • the acquired sentence is referred to as sentence B.
  • the full-text DB generation program 601 determines whether or not the text B is stored in the text 301 of the full-text DB 116 (504). In step 504, the full-text DB generation program 601 stores the sentence B in the sentence 301 when the sentence 301 includes a sentence including a character string that completely matches the character string of the sentence B (that is, the same sentence as the sentence B). It is determined that
  • step 504 If it is determined in step 504 that the sentence B is stored in the sentence 301 of the full-text DB 116, the full-text DB generation program 601 executes step 507.
  • step 504 When it is determined in step 504 that the sentence B is not stored in the sentence 301 of the full-text DB 116, the full-text DB generation program 601 adds a new line to the full-text DB 116 (505). In step 505, the full-text DB generation program 601 stores “0” in the added line frequency 303.
  • the full sentence DB generation program 601 stores the sentence B in the sentence 301 (506).
  • the full-text DB generation program 601 stores the user ID of the user who generated the document A including the text B and the text B in association with each other in the text 301.
  • step 506 executed after step 505, the full-text DB generation program 601 stores the sentence B in the sentence 301 of the added line.
  • step 506 the full-text DB generation program 601 adds “1” to the frequency 303 of the line in which the sentence B is stored in step 506 (507).
  • the full-text DB generation program 601 updates the ACL 302 of the row in which the sentence B is stored based on the value stored in the first user list variable (508). Specifically, the full-text DB generation program 601 extracts the ACL 302 value of the line of the full-text DB 116 in which the sentence B is stored, and sums the extracted value and the value stored in the first user list variable. Obtain the result of an operation (OR operation). Then, the full-text DB generation program 601 stores the acquired sum calculation result in the ACL 302 in the full-text DB 116 line corresponding to the sentence B. If the value extracted from the ACL 302 has already been stored in the values stored in the first user list variable, the procedure for storing the result of the sum operation in the ACL 302 can be omitted. Needless to say.
  • step 508 the full-text DB generation program 601 executes step 503, and repeats step 504 to step 508 until the processing from step 504 is executed on all sentences in the document A.
  • the full-text DB generation program 601 determines in step 501 that all the documents stored in the processing target document 114 have been processed in step 502 and subsequent steps, the full-text DB generation program 601 ends the processing 600 shown in FIG. Is notified of the end of process 600.
  • the full-text DB generation program 601 can calculate the frequency of occurrence of the same sentence in the processing target document 114 by generating the full-text DB 116 in the process shown in FIG.
  • FIG. 8 is a flowchart showing a process of generating the synonym dictionary 118 by the dictionary generation program 122 according to the first embodiment of this invention.
  • the dictionary generation program 122 starts the processing shown in FIG. 8 at the timing instructed by the administrator or periodically. Further, the dictionary generation program 122 is a timing at which a system event such as a new document is added to the processing target document 114, the document is updated, or the system becomes idle is triggered. You may start the process shown in FIG.
  • the dictionary generation program 122 first activates the full-text DB generation program 601 and causes the full-text DB generation program 601 to execute the process 600 shown in FIG.
  • the dictionary generation program 122 determines whether or not the processes after step 603 have been performed for all users (602).
  • the synonym dictionary system 100 holds in advance the user IDs of all users who use the document sharing system. Then, the full-text DB generation program 601 performs the process in step 602 using the user ID previously stored in the synonym dictionary system 100.
  • step 602 If it is determined in step 602 that all users have been processed in step 603 and subsequent steps, the dictionary generation program 122 ends the process shown in FIG.
  • the dictionary generation program 122 When there is a user who has not been subjected to the process after step 603, the dictionary generation program 122 identifies one user ID for which the process after step 603 has not been performed. Here, let the identified user ID be user C. Then, the dictionary generation program 122 determines whether or not the step 604 for the user C has been executed on all the lines of the full text DB 116 (603). When step 604 for user C is executed for all lines of the full text DB 116, the dictionary generation program 122 executes step 605.
  • step 604. the dictionary generation program 122 extracts one line from the full-text DB 116 that does not execute step 604 for the user C.
  • the dictionary generation program 122 stores the sentence of the sentence 301 of the extracted line in the sentence 1101 of the learning data set 117 of the user C. To do.
  • step 604 the dictionary generation program 122 stores the same value as the value of the extracted line frequency 303 in the line frequency 1102 of the learning data set 117 in which the extracted line sentence is stored.
  • the dictionary generation program 122 generates the learning data set 117 of the user C by repeatedly executing Step 603 and Step 604. As an example, the processing in step 604 after the user ID “2001” is specified in step 602 is shown below.
  • the dictionary generation program 122 determines in step 604 that the user ID “2001” is stored in the ACL 302 in the row 304, the dictionary generation program 122 executes the following processing.
  • the character string stored in the sentence 301 in the line 304 is stored in the sentence 1101 in the line 1103 of the learning data set 117 of the user ID “2001”. Further, the dictionary generation program 122 stores the value of the frequency 303 in the row 304 in the frequency 1102 in the row 1103 of the learning data set 117 of the user ID “2001”.
  • step 604 If the dictionary generation program 122 determines in step 604 that the user ID “2001” is not stored in the ACL 302 in the row 309, the character string stored in the sentence 301 in the row 309 is changed to the user ID “2001”. The process of storing in the learning data set 117 corresponding to “is not performed.
  • the dictionary generation program 122 By repeating step 603 and step 604, the dictionary generation program 122 generates a learning data set 117.
  • the dictionary generation program 122 may add the frequency of occurrence of the sentence in the processing target document 114 to the learning data set 117. it can.
  • the dictionary generation program 122 can generate the synonym dictionary 118 corresponding to each user based on all documents generated by all users.
  • step 603 If it is determined in step 603 that step 604 has been executed for all lines of the full text DB 116, the dictionary generation program 122 generates the synonym dictionary 118 of the user C using the generated learning data set 117 (605). .
  • step 605 the dictionary generation program 122 reads the character strings of the sentence 1101 included in all the rows of the learning data set 117, and sets the similarity between words included in the read character string as the frequency 1102 value. Use to calculate. Then, the dictionary generation program 122 generates the synonym dictionary 118 by storing, in each row of the synonym dictionary 118, a set of words whose calculated similarity is equal to or greater than a predetermined threshold.
  • the dictionary generation program 122 may input a predetermined threshold for determining the degree of similarity from the administrator or the user via the input / output device 103 or the network device 107 in step 605.
  • the dictionary generation program 122 may read a predetermined threshold for determining the similarity from the auxiliary storage device 110 in step 605.
  • the auxiliary storage device 110 may store a predetermined threshold value for determining the degree of similarity in advance.
  • step 605 the dictionary generation program 122 uses a technique described in Non-Patent Document 1 or Patent Document 1 or a general technique such as calculating similarity between words using morphological analysis, so The similarity is calculated.
  • step 605 the dictionary generation program 122 executes step 602, and performs the process of step 603 for all users.
  • the synonym dictionary 118 is generated by the processing shown in step 605.
  • the words in the synonym dictionary 118 (words stored in the headword 1301 and the synonym 1302) generated by the process shown in FIG. 8 are words extracted from documents that can be browsed by each user. For this reason, it is possible to prevent information leakage by searching the synonym dictionary 118 for words included in documents generated by other users.
  • the frequency used to calculate the similarity of each word the frequency at which a sentence appears in the processing target document 114 is used. For this reason, the similarity calculated in step 605 has high accuracy. That is, the synonym dictionary 118 generated in step 605 has high accuracy.
  • the dictionary search program 125 When the dictionary search program 125 receives a search request from a user or a program, the dictionary search program 125 specifies the synonym dictionary 118 corresponding to the user ID included in the search request. Then, the synonym is provided to the user or the program by searching the specified synonym dictionary 118 for the word included in the search request.
  • the synonym dictionary 118 for each user is generated based on the frequency of words that appear in the processing target document 114, and thus the synonym dictionary 118 with high accuracy is generated.
  • the synonym dictionary 118 for each user stores words included in documents that can be browsed by each user. Therefore, when a character string is searched for by the user 1, the user 1 becomes a document that cannot be browsed by the user 1. It does not get the included words. For this reason, information leakage by the synonym dictionary 118 can be prevented in advance.
  • the dictionary generation program 122 generates the synonym dictionary 118 using the frequency at which the same sentence appears. For this reason, the dictionary generation program 122 can accurately calculate the frequency of occurrence of the same sentence, and as a result, can generate the synonym dictionary 118 with higher accuracy.
  • the content utilization system is shown below as an example of a system using the synonym dictionary 118.
  • This content utilization system is a system that searches content corresponding to a search character string input by a user from a file storage, and is a system that appropriately searches for synonyms that can be browsed by a user according to a synonym dictionary 118 for each user.
  • FIG. 9 is a block diagram showing the configuration of the content utilization system according to the first embodiment of the present invention.
  • the content utilization system shown in FIG. 9 is an example of a system for a user to use the synonym dictionary system 100 shown in FIG.
  • the content utilization system includes a user terminal 1001, a search system 1002, a file storage 1003, a network 910, and a data dictionary management system 1004.
  • the user terminal 1001, the search system 1002, the file storage 1003, and the data dictionary management system 1004 are computers including a processor and a memory.
  • the network 910 is a network such as a LAN, the Internet, or a WAN.
  • User terminal 1001 is a terminal for a user to input a search character string.
  • the user terminal 1001 is connected to the search system 1002.
  • the search system 1002 When the search character string is received from the user terminal 1001, the search system 1002 transmits content such as a document that the user wants to browse to the user terminal 1001.
  • the search system 1002 has an index 909 and is connected to the user terminal 1001 and the network 910.
  • the content may be a document including only text, or an image or video in which the character string of the tag is disabled.
  • the index 909 indicates a word included in a tag added to the image or the like. For this reason, in the following, tags added to images and the like are also included in the processing target document 114 in the same manner as the document.
  • the file storage 1003 has a text database 113 for storing documents generated by the user.
  • the file storage 1003 is connected to the network 910.
  • the data dictionary management system 1004 has the data management program 112 of the synonym dictionary system 100 shown in FIG. 1, and holds the synonym dictionary 118, the full text DB 116, and the learning data set 117.
  • the data dictionary management system 1004 is connected to the network 910.
  • the network 910 is connected to a search system 1002, a file storage 1003, and a data dictionary management system 1004.
  • the data dictionary management system 1004 and the file storage 1003 can provide the functions of the synonym dictionary system 100 to the user by communicating between the data dictionary management system 1004 and the file storage 1003.
  • the search system 1002 generates an index 909 in advance based on the processing target document 114 and the ACL information 115 in the text database 113.
  • FIG. 10 is a sequence diagram showing search processing in the content utilization system according to the first embodiment of the present invention.
  • the user terminal 1001 When a user inputs a search character string indicating content to the user terminal 1001 in order to acquire specific content, the user terminal 1001 obtains the user ID of the user who input the search character string and the input search character string. Generate a search request that contains. Then, the generated search request is transmitted to the search system 1002 (1005).
  • the search system 1002 transmits the received search request to the data dictionary management system 1004 (1006).
  • the data dictionary management system 1004 starts the dictionary search program 125.
  • the dictionary search program 125 specifies the synonym dictionary 118 to be searched using the user ID included in the received search request. Then, the synonym corresponding to the search character string is searched from the headword 1301 and the synonym 1302 of the specified synonym dictionary 118 (1007).
  • the data dictionary management system 1004 transmits the searched synonym to the search system 1002 (1008).
  • the search system 1002 acquires the document name 1403 from the index 909 shown in FIG. 11 based on the user ID transmitted in the sequence 1005 and the synonym transmitted in the sequence 1008 (1009).
  • the search system 1002 After the document name 1403 is acquired by the process 1009 shown in FIG. 10, the search system 1002 generates a file acquisition request including the searched document name 1403. Then, the generated file acquisition request is transmitted to the file storage 1003 (1010).
  • the file storage 1003 transmits the content to the search system 1002 based on the document name 1403 included in the received file acquisition request (1011).
  • the search system 1002 transmits the received content to the user terminal 1001.
  • FIG. 11 is an explanatory diagram showing the index 909 according to the first embodiment of this invention.
  • the index 909 is information indicating in which content a character string (keyword) included in the content is stored.
  • the index 909 is generated by the search system 1002.
  • the search system 1002 acquires the text database 113 from the file storage 1003 and generates an index 909 when receiving an instruction from a regular or administrator.
  • the index 909 includes a keyword 1401, an ACL 1402, a document name 1403, and an offset 1404.
  • the keyword 1401 indicates a word included in the content.
  • the keyword 1401 indicates a word included in a tag added to the content when the content is an image or the like.
  • the ACL 1402 indicates a user ID of a user who can view a document or the like, that is, a content.
  • the document name 1403 indicates an identifier of content stored in the text database 113 of the file storage 1003.
  • the offset 1404 indicates the position of a word included in the document when the content is a document.
  • the offset 1404 indicates the position of a word in a tag added to the image when the content is an image.
  • the search system 1002 identifies the line of the index 909 that includes the synonym transmitted in the sequence 1008 in the keyword 1401, and includes the user ID transmitted in the sequence 1005 in the ACL 1402. To get.
  • the data dictionary management system 1004 holds the synonym dictionary 118 for each user.
  • the synonym dictionary 118 for each user is generated using all the documents stored in the file storage 1003, and thus has high accuracy. Therefore, the content utilization system described above can provide content to the user using an appropriate character string when searching the file storage 1003 for content corresponding to the search character string input by the user.
  • the synonym dictionary 118 that provides the search results does not include words input by users other than the user who input the search character string, so that the user who input the search character string acquires content that the user cannot view. I can't. For this reason, according to the above-mentioned process, information leakage to the user can be prevented in advance.
  • the synonym dictionary system 100 generates the synonym dictionary 118 by calculating the frequency of appearance of sentences included in a document.
  • the synonym dictionary system 100 generates the synonym dictionary 118 by calculating the frequency of occurrence of combinations of two words included in a document and the relationship between the two words.
  • FIG. 12 is an explanatory diagram showing a synonym dictionary system 1000 according to the second embodiment of this invention.
  • the synonym dictionary system 1000 of the second embodiment is a system connected to a document sharing system used by a user or a system provided in a document sharing system used by a user.
  • the synonym dictionary system 1000 of the second embodiment is the same as the synonym dictionary system 100 of the first embodiment. That is, the synonym dictionary system 1000 includes the processor 101, the main storage device 102, the input / output device 103, the network device 107, and the auxiliary storage device 110, similar to the synonym dictionary system 100.
  • the data management program 112 included in the main storage device 102 of the synonym dictionary system 1000 includes a relational DB generation program 801.
  • the relation DB generation program 801 is a program having a function for generating the relation DB 119.
  • the auxiliary storage device 110 of the synonym dictionary system 1000 has a relation DB 119 and a relation learning data set 120.
  • the relation DB 119 is a table showing a relation between two words in the document.
  • the relationship learning data set 120 is a learning data set generated for each user based on the relationship DB 119.
  • each program included in the synonym dictionary system 1000 of the second embodiment may be implemented by hardware such as an integrated circuit, similar to the function of each program included in the synonym dictionary system 100 of the first embodiment.
  • Each program, each table, and the like included in the synonym dictionary system 1000 may be installed in the synonym dictionary system 1000 by a flash memory or the like.
  • FIG. 13 is an explanatory diagram showing the relation DB 119 according to the second embodiment of this invention.
  • the relationship DB 119 is generated by the relationship DB generation program 801 based on the processing target document 114 and the ACL information 115.
  • the relation DB 119 shows two words included in each sentence of the processing target document 114 and dependency of the two words.
  • the dependency of two words indicates a relationship between two words.
  • the relationship DB 119 includes a word 1 (401), a relationship 402, a word 2 (403), an ACL 404, and a frequency 405.
  • the relation DB 119 shown in FIG. 13 includes rows 406 to 411.
  • the relationship 402 is the relationship between the word indicated by the word 1 (401) and the word indicated by the word 2 (403) in the sentence in which the word indicated by the word 1 (401) and the word indicated by the word 2 (403) are extracted. Show.
  • FIG. 13 indicates the role of word 2 (403) with respect to word 1 (401).
  • the value stored in the relationship 402 shown in FIG. 13 indicates the relationship between the word indicated by the word 1 (401) and the word indicated by the word 2 (403).
  • ACL 404 indicates a user ID of a user who can view a document including a sentence in which two words indicated by word 1 (401) and word 2 (403) are extracted.
  • the frequency 405 indicates the number of times the combination indicated by the word 1 (401), the relationship 402, and the word 2 (403) appears in the processing target document 114.
  • the relation DB generation program 801 reads “I”, “Brown”, “Dog” from the document “I have a brown dog.” , And “keep” are extracted as words. Then, the extracted word combinations (for example, “I keep” and “I”) are stored in the word 1 (401) and the word 2 (403), and the relationship between the respective word combinations (for example, “subject” ”) Is stored in relationship 402.
  • FIG. 14 is an explanatory diagram showing a relational learning data set 120 according to the second embodiment of this invention.
  • the relationship learning data set 120 is a table generated by extracting only the dependency relationship included in the document that can be viewed by each user from the relationship DB 119.
  • the relationship learning data set 120 shown in FIG. 14 shows the result of extracting the dependency relationship regarding the user whose user ID is “2001” from the relationship DB 119 shown in FIG.
  • the dictionary generation program 122 generates a table similar to the relation learning data set 120 illustrated in FIG. 14 for each user.
  • the relation learning data set 120 includes a word 1 (1201), a relation (1202), a word 2 (1203), and a frequency 1204.
  • the relation learning data set 120 shown in FIG. 14 includes rows 1205 to 1210.
  • Word 1 (1201) is the first word and corresponds to word 1 (401) shown in FIG.
  • the relationship 1202 describes the relationship between the word 1 (1201) and the word 2 (1203), and corresponds to the relationship 402 shown in FIG.
  • Word 2 (1203) is the second word and corresponds to word 2 (403) shown in FIG.
  • the frequency 1204 corresponds to the frequency 405 shown in FIG.
  • the row 1205 shown in FIG. 14 corresponds to the row 406 shown in FIG. 13, and the value of the frequency 1204 in the row 1205 is the same as the value of the frequency 405 in the row 406.
  • FIG. 15 is a flowchart illustrating a process 800 for generating the relation DB 119 according to the second embodiment of this invention.
  • the relation DB generation program 801 when activated by the dictionary generation program 122, determines whether or not the processing after step 702 has been performed on all the documents stored in the processing target document 114 (701). When all the documents stored in the processing target document 114 are subjected to the processing from step 702 onward, the relational DB generation program 801 ends the processing 800 shown in FIG.
  • the relation DB generation program 801 has not yet performed the processing after step 802 from the processing target document 114. Get one document.
  • the document acquired here will be referred to as document D below.
  • the relation DB generation program 801 extracts the line of the ACL information 115 that includes the identifier of the document D in the document name 1501, and specifies the user ID of the user who is permitted to view the document D from the ACL information 1502 of the extracted line. To do. Then, the relation DB generation program 801 stores the user ID of the identified user in the second user list variable (702).
  • the second user list variable is a variable temporarily stored in the main storage device 102 in the second embodiment, and is a variable for performing the processing shown in FIG.
  • a plurality of user IDs may be stored in the second user list variable according to the ACL information 115.
  • the relation DB generation program 801 determines whether or not the processing after step 704 has been performed on all the sentences included in the document D (703). When the processing after step 704 is executed for all sentences included in the document D, the relation DB generation program 801 returns to step 701 to execute the processing shown in FIG. 15 for the new document.
  • the relation DB generation program 801 acquires a sentence from which the process after step 704 is not executed from the document D.
  • the acquired sentence is described as sentence E.
  • the relation DB generation program 801 extracts combinations of two words included in the sentence E, and determines whether or not the processing after Step 705 has been executed for all the extracted combinations (704). When the processing after step 705 is executed for all the extracted combinations, the relation DB generation program 801 returns to step 703 to execute the processing after step 704 on the new sentence.
  • the relationship DB generation program 801 specifies the dependency relationship between the two extracted words. Then, the relation DB generation program 801 determines whether or not a line indicating the extracted two words and the relation between the two words is already included in the relation DB 119 (705).
  • the document D is the document 205 shown in FIG. 2
  • the sentence E is “refer to the following result”, “result” and “reference” are extracted in step 704, and the relationship “target”
  • the relation DB generation program 801 stores the two extracted words in the row 411 of the relation DB 119 in FIG. 13 in step 705. And the relationship between the two words is already included.
  • the relation DB generation program 801 executes Step 707 if it is determined in Step 705.
  • the relation DB generation program 801 adds a new line to the relation DB 119. Then, the relation DB generation program 801 stores the extracted two words and the relation between the two words in the word 1 (401), the word 2 (403), and the relation 402 of the added line (706). ).
  • step 706 the relation DB generation program 801 stores “0” in the frequency 405 of the added row.
  • the relation DB generation program 801 stores the relation DB 119. “1” is added to the frequency 405 (707).
  • step 707 executed after step 706, the relational DB generation program 801 adds “1” to the frequency 405 of the row added in step 706. Further, in step 707 after determining that the relation DB 119 includes a row indicating the extracted two words and the relationship between the two words in step 705, the relation DB generation program 801 displays the extracted two words. And “1” is added to the line frequency 405 indicating the relationship between the two words.
  • the relation DB generation program 801 updates the ACL 404 of the row whose frequency 405 has been updated in step 707 based on the value stored in the second user list variable (708).
  • the relation DB generation program 801 extracts the ACL 404 value of the row whose frequency 405 is updated in step 707, and the extracted value and the value stored in the second user list variable. The result of the sum operation (OR operation) is obtained. Then, the relation DB generation program 801 stores the acquired sum operation result in the ACL 404 of the row in which the frequency 405 is updated in Step 707. At this time, when the value extracted from the ACL 404 is already included in the second user list variable, the process of writing back to the ACL 404 of the updated line may be omitted.
  • step 708 the relational DB generation program 801 executes step 704.
  • step 701 determines in step 701 that all the documents stored in the processing target document 114 have undergone the processing from step 702, the processing 800 shown in FIG. Then, the dictionary generation program 122 is notified of the end of the process 800.
  • FIG. 16 is a flowchart showing processing for generating the synonym dictionary 118 according to the second embodiment of this invention.
  • the dictionary generation program 122 starts the processing shown in FIG. 16 at the timing instructed by the administrator or periodically. Further, the dictionary generation program 122 is a timing at which a system event such as a new document is added to the processing target document 114, the document is updated, or the system becomes idle is triggered. The process shown in FIG. 16 may be started.
  • the dictionary generation program 122 first activates the relation DB generation program 801 and causes the relation DB generation program 801 to execute the process 800 shown in FIG.
  • the dictionary generation program 122 determines whether or not the processes after step 803 have been performed for all users (802).
  • the synonym dictionary system 1000 holds in advance the user IDs of all users who use the document sharing system. Then, the relation DB generation program 801 performs the process in step 802 using the user ID previously stored in the synonym dictionary system 1000.
  • step 802 If it is determined in step 802 that all users have undergone the processing from step 803, the dictionary generation program 122 ends the processing shown in FIG.
  • the dictionary generation program 122 When there is a user who has not been processed after Step 803, the dictionary generation program 122 identifies one user ID of a user who has not been processed after Step 803. Here, let the identified user ID be user F. Then, the dictionary generation program 122 determines whether or not Step 804 for the user F has been executed on all the rows of the relation DB 119 (803). When step 804 for the user F is executed for all the rows of the relation DB 119, the dictionary generation program 122 executes step 805.
  • the dictionary generation program 122 extracts one row from the row of the relation DB 119 that has not executed step 804 for the user F.
  • the dictionary generation program 122 converts the word 1 (401), the relationship 402, and the word 2 (403) of the extracted line to Stored in the word 1 (1201), the relationship 1202, and the word 2 (1203) of the relationship learning data set 120 of the user F. Further, in step 804, the dictionary generation program 122 stores the same value as the value of the extracted row frequency 405 in the frequency 1204 of the relationship learning data set 120 of the user F.
  • the dictionary generation program 122 generates the relation learning data set 120 of the user F by repeatedly executing Step 803 and Step 804.
  • step 803 If it is determined in step 803 that step 804 for user F has been executed for all rows in the relationship DB 119, the dictionary generation program 122 uses the generated relationship learning data set 120 of user F to generate synonyms for user F.
  • a dictionary 118 is generated (805).
  • step 805 the dictionary generation program 122 calculates the similarity between words using the frequency 1204 of the relation learning data set 120, collects a set of words having a high similarity, and generates the synonym dictionary 118 of the user F.
  • the generated synonym dictionary 118 is the same as the synonym dictionary 118 shown in FIG.
  • step 805 the dictionary generation program 122 uses a technique described in Non-Patent Document 1 or Patent Document 1, or a general technique such as calculating a similarity between words using morphological analysis. The similarity is calculated.
  • the dictionary generation program 122 stores the contents of each row extracted from the relation DB 119 in the relation learning data set 120 and calculates the similarity between words based on the generated relation learning data set 120. To do. However, the dictionary generation program 122 of the second embodiment calculates the similarity at any time in step 804, collects a set of words having high similarity based on the calculated similarity, and synonyms of the user F in step 805 A dictionary 118 may be generated.
  • step 805 the dictionary generation program 122 determines that the similarity between words is high when the similarity calculated between words is equal to or greater than a predetermined threshold.
  • the dictionary generation program 122 may input a predetermined threshold value for determining the degree of similarity from the administrator or the user via the input / output device 103 or the network device 107.
  • the dictionary generation program 122 may read a predetermined threshold value for determining the degree of similarity from the auxiliary storage device 110 in step 805.
  • the auxiliary storage device 110 may store a predetermined threshold value for determining the degree of similarity in advance.
  • the dictionary generation program 122 of the second embodiment can generate the synonym dictionary 118 of the second embodiment by the process shown in FIG.
  • the dictionary search program 125 of the second embodiment searches for synonyms using the synonym dictionary 118 generated in the second embodiment.
  • the present embodiment is not limited to the first embodiment or the second embodiment described above, and includes various embodiments.
  • the synonym dictionary system 100 of the first embodiment may have the function of the synonym dictionary system 1000 of the second embodiment.
  • the synonym dictionary system of this embodiment is generated by generating a new synonym dictionary using the synonym dictionary 118 generated in the first embodiment and the synonym dictionary 118 generated in the second embodiment. It is possible to generate a synonym dictionary with high accuracy.
  • the synonym dictionary system of this embodiment may include a dictionary generation program 122, a full-text DB generation program 601, and a relational DB generation program 801. Then, the dictionary generation program 122 may perform the processing shown in FIG. 8 and the processing shown in FIG.
  • step 605 the dictionary generation program 122 stores the similarity calculated for the synonym stored in the synonym 1302 in the synonym dictionary 118 of the first embodiment in association with each synonym.
  • step 805 the dictionary generation program 122 stores the similarity calculated for the synonym stored in the synonym 1302 in the synonym dictionary 118 of the second embodiment in association with each synonym.
  • a case where the headword 1301 indicates “dog” and the synonym 1302 indicates “domestic dog” is included in the synonym dictionary 118 of the first embodiment and included in the synonym dictionary 118 of the second embodiment.
  • 0.8 is calculated as the similarity of the “domestic dog” in the synonym dictionary 118 of the first embodiment
  • the “domestic dog” in the synonym dictionary 118 generated in the synonym dictionary 118 of the second embodiment is calculated. It is assumed that 0.9 is calculated as the similarity of “.
  • the dictionary generation program 122 uses the similarity (0.8) of the “domestic dog” in the synonym dictionary 118 of the first embodiment and the similarity of the “domestic dog” in the synonym dictionary 118 of the second embodiment. (0.9) is multiplied and the multiplication result (0.72) is acquired as a new similarity. Then, a new synonym dictionary including the same headword 1301 and synonym 1302 as the synonym dictionary 118 is generated, and the order of the words stored in the synonym 1302 is changed according to the acquired new similarity.
  • the dictionary generation program 122 calculates the similarity of a new synonym dictionary by a simple multiplication method, but other operators such as addition may be used. Further, the dictionary generation program 122 uses predetermined weights (constant a and a) for the similarity (variable x) of the synonym dictionary 118 of the first embodiment and the similarity (variable y) of the synonym dictionary 118 of the second embodiment. The similarity (ax + by) may be calculated by using a two-variable function generated by multiplying each of the constants b).
  • the synonym dictionary 118 for each user is generated based on the frequency of words that appear in the processing target document 114, and thus the synonym dictionary 118 with high accuracy is generated.
  • the synonym dictionary 118 for each user stores words included in documents that can be browsed by each user. Therefore, when a character string is searched for by the user 1, the user 1 becomes a document that cannot be browsed by the user 1. It does not get the included words. For this reason, information leakage by the synonym dictionary 118 can be prevented in advance.
  • the dictionary generation program 122 uses the frequency at which the combination of two words included in one sentence and the relationship between the two words appears in the processing target document 114.
  • the synonym dictionary 118 is generated. Therefore, the dictionary generation program 122 can accurately calculate the similarity between words, and as a result, can generate the synonym dictionary 118 with higher accuracy.
  • the synonym dictionary 118 generated in the first embodiment and the second embodiment is generated for each user, when there are many users using the synonym dictionary system 100 or the synonym dictionary system 1000, the synonym dictionary 118 is May be enormous. Then, the generated synonym dictionary 118 may press resources such as the auxiliary storage device 110.
  • the dictionary generation program 122 in the third embodiment extracts the common synonym from the synonym dictionary 118 for each user and generates the common synonym dictionary, thereby generating the common synonym dictionary amount and the synonym dictionary 118 amount. The total amount of can be reduced.
  • FIG. 17 is a flowchart showing processing for generating a common synonym dictionary according to the third embodiment of the present invention.
  • the dictionary generation program 122 generates synonym dictionaries 118 for all users by the process shown in FIG. 8 or the process shown in FIG. 16 (1701).
  • the dictionary generation program 122 extracts the synonym dictionary 118 of one user from the synonym dictionary 118 of all users, and copies the contents of the extracted synonym dictionary 118 to the common synonym dictionary (1702).
  • the common synonym dictionary in step 1702 is a table stored in the main storage device 102.
  • the user corresponding to the synonym dictionary 118 extracted in step 1702 will be referred to as user X.
  • the dictionary generation program 122 determines whether or not the processing after step 1704 has been performed for all users other than the user X (step 1703). When all the users other than the user X are subjected to the processing after step 1704, the dictionary generation program 122 executes step 1707.
  • the dictionary generation program 122 has performed processing from step 1705 on all the synonyms included in the synonyms 1302 of the common synonym dictionary. Is determined (1705). In step 1705, the dictionary generation program 122 extracts, as users Y, users who have not performed the processes in and after step 1705 among users other than the user X.
  • step 1705 If all the synonyms included in the common synonym dictionary are processed in step 1705 and subsequent steps, the dictionary generation program 122 returns to step 1703.
  • the dictionary generation program 122 uses the synonym that has not been processed in step 1705 and subsequent steps and its headword (headword 1301 in the common synonym dictionary). And the value stored in the common synonym dictionary. Then, the dictionary generation program 122 determines whether or not the pair of the extracted synonym and its headword is included in the synonym dictionary 118 of the user Y (1705).
  • the dictionary generation program 122 returns to step 1704.
  • the dictionary generation program 122 deletes the synonym extracted in step 1705 from the common synonym dictionary (1706). This is because the extracted synonyms are not common synonyms in all the synonym dictionaries 118.
  • step 1706 the dictionary generation program 122 returns to step 1704.
  • a common synonym dictionary is generated by the processing in steps 1702 to 1706. If it is determined in step 1703 that all the users have performed the processing from step 1704 onward, the dictionary generation program 122 stores the generated common synonym dictionary in the auxiliary storage device 110.
  • step 1703 determines whether or not the processing in step 1708 has been executed for all users (1707). ). If it is determined that the process of step 1708 has been executed for all users, the dictionary generation program 122 ends the process shown in FIG.
  • step 1707 If it is determined in step 1707 that there is a user who has not executed the process of step 1708, the dictionary generation program 122 extracts one user from the users who have not executed the process of step 1708 as the user Z. . Then, the dictionary generation program 122 determines whether or not the processing of Step 1709 has been executed for all the synonyms in the common synonym dictionary (1708).
  • step 1708 If it is determined in step 1708 that the process of step 1709 has been executed for all the synonyms in the common synonym dictionary, the dictionary generation program 122 returns to step 1707.
  • step 1708 If it is determined in step 1708 that there are synonyms in the common synonym dictionary that have not been processed in step 1709, the dictionary generation program 122 selects a synonym that has not been processed in step 1709 from the common synonym dictionary. . Then, the dictionary generation program 122 deletes the same synonym as the selected synonym from the synonym dictionary 118 of the user Z (1709). As a result, the common synonym is deleted from the synonym dictionary 118 of the user Z.
  • step 1709 the dictionary generation program 122 returns to step 1708.
  • step 1708 and step 1709 all common synonyms are deleted from the synonym dictionary 118 of the user Z.
  • Step 1707 By repeating the processing from Step 1707 to Step 1709, the common synonyms are deleted from the synonym dictionary 118 of all users.
  • the dictionary search program 125 After the common synonym dictionary is generated, when the dictionary search program 125 receives a search request from the user or program, the dictionary search program 125 searches the common synonym dictionary.
  • the dictionary search program 125 extracts a common synonym stored in the common synonym dictionary based on the search character string included in the search request. . Further, the dictionary search program 125 extracts synonyms from the synonym dictionary 118 of the user with the user ID included in the search request based on the search character string included in the search request.
  • the dictionary search program 125 transmits the common synonyms extracted from the common synonym dictionary and the synonyms extracted from the synonym dictionary 118 as synonyms to the user or program that transmitted the search request.
  • the synonym dictionary system 100 or the synonym dictionary system 1000 does not need to hold the synonym dictionary 118 of all users, and the synonym dictionary 118 including the synonym dictionary unique to each user. Should be held. Accordingly, the amount of the common synonym dictionary and the synonym dictionary 118 included in the synonym dictionary system 100 or the synonym dictionary system 1000 can be reduced, and resources such as the auxiliary storage device 110 are not compressed.
  • the synonym dictionary system 100 calculates the frequency of occurrence of the same sentence in all documents generated by the user.
  • the synonym dictionary system 100 in the fourth embodiment calculates the frequency at which similar sentences appear in addition to the frequency at which the same sentences appear.
  • the synonym dictionary system 100 in the fourth embodiment has the same configuration as the synonym dictionary system 100 in the first embodiment shown in FIG.
  • FIG. 18 is an explanatory diagram illustrating a document stored in the processing target document 114 according to the fourth embodiment of this invention.
  • the processing target document 114 of the fourth embodiment includes the document group 202 generated by the employee A and the document group 203 generated by the president, as with the processing target document 114 of the first embodiment. Further, the sentences included in the document 204 and the sentences included in the document 205 have the same meaning in some sentences, but have different meanings in some sentences.
  • the document 205 includes a sentence composed of different character strings even if it has the same meaning as the sentence included in the document 204.
  • sentences composed of different character strings with the same meaning are described as similar sentences.
  • the document 205 includes a sentence similar to the sentence of the document 204. Specifically, the first sentence of the document 204 “please refer to the following results” and the first sentence of the document 205 “please refer to the following results” are similar sentences. .
  • the text in the president's document 205 is similar to the text in the employee A's document 204
  • the text of the president similar to the text of the employee A shows the contents that the employee A can view. It may be used as learning data for generating the A synonym dictionary 118 of A.
  • the data management program 112 calculates the frequency of appearance of another user's text that is the same as or similar to the text of the employee A, and generates the synonym dictionary 118 according to the calculated frequency. Thereby, the data management program 112 can increase the amount of learning data for generating the synonym dictionary 118 of the employee A. Then, the data management program 112 can accurately generate the synonym dictionary 118 of the employee A.
  • the full-text DB generation program 601 of the fourth embodiment executes the same processing as Step 501 to Step 503 shown in FIG. Note that the full-text DB generation program 601 in the fourth embodiment acquires the document A from the processing target document 114 in step 501 and acquires the sentence B from the document A in step 502, as in the first embodiment.
  • the full-text DB generation program 601 determines that the text B is stored in the text 301 when a text similar to the text B is included in the text 301 in each line of the full-text DB 116. .
  • An example of a method for determining whether or not a sentence 301 similar to the sentence B is included in the sentence 301 is shown below.
  • the full-text DB generation program 601 normalizes the sentence B by holding rules based on grammar in advance. Then, the full-text DB generation program 601 reads a sentence similar to the sentence B in the sentence 301 when there is a line that matches the character string of the normalized sentence B and the character string of the sentence 301 among the lines of the full-text DB 116. It is determined that it is included.
  • the full-text DB generation program 601 defines rules for honorary texts (sentences including “is.” Or “mass.”) And regular texts (sentences including “is.” Etc.). Hold. If the sentence “No abnormality was found in the periodic inspection of the power generation facility in April” in the second sentence of the document 204 shown in FIG. 2 is the sentence B, the full-text DB generation program 601 holds In accordance with the rule, the sentence B is normalized as “No abnormalities were found in the periodic inspection of the power generation facility in April”.
  • step 504 when the sentence 301 of the full-text DB 116 stores the second sentence of the document 205 shown in FIG. 2, “No abnormality was found in the periodic inspection of the power generation facility in April”.
  • the full text DB generation program 601 determines that the normalized text B is stored in the text 301.
  • the full-text DB generation program 601 holds rules for politely requested sentences (texts including “Please do”) and command sentences (texts including “Do”). Also good. 2, if the sentence “Please refer to the following result” in the first sentence of the document 204 shown in FIG. 2 is the sentence B, the full-text DB generation program 601 refers to the sentence “B. . "May be normalized.
  • step 504 when the sentence 301 stores “refer to the following result” which is the first sentence of the document 205 shown in FIG. 2, the full-text DB generation program 601 stores the normalized sentence B May be determined to be stored in the sentence 301.
  • step 504 the full-text DB generation program 601 converts the sentences stored in the sentence B and the sentence 301 into punctuation marks, midpoints (" ⁇ "), long notes ("-"), underscores, parentheses, and angle brackets. You may normalize to the sentence which omitted symbols, such as. If the normalized sentence B matches the sentence stored in the sentence 301, it may be determined that the sentence B is stored in the sentence 301.
  • the full-text DB generation program 601 allows the same sentence or a similar sentence to be included in the processing target document 114.
  • the frequency of appearance can be accurately calculated.
  • the dictionary generation program 122 can generate a high-accuracy synonym dictionary 118 by processing to be described later.
  • step 504 When it is determined in step 504 that the normalized sentence B is not stored in the sentence 301 of the full-text DB 116, the full-text DB generation program 601 executes the same process as step 505 shown in FIG.
  • the full-text DB generation program 601 of the fourth embodiment stores the normalized text B in the text 301 on a new line (506).
  • step 504 If it is determined in step 504 that step 506 or the normalized sentence B is stored in the sentence 301 of the full sentence DB 116, the full sentence DB generation program 601 in the fourth embodiment is shown in FIG. The same processing as in step 507 and step 508 is performed.
  • the full text DB 116 in the fourth embodiment is generated by the above-described processing.
  • the full-text DB generation program 601 of the fourth embodiment can calculate the frequency of occurrence of the same sentence or similar sentences in the document by using the above-described method.
  • the dictionary generation program 122 can generate the synonym dictionary 118 of each user as in the first embodiment by performing the process shown in FIG. 8 on the full-text DB 116 of the fourth embodiment.
  • the dictionary generation program 122 uses a synonym dictionary that uses similar sentences that have the same meaning and differ only in the form of grammar or the frequency of appearance of the same sentence. 118 is generated. Therefore, the dictionary generation program 122 can accurately calculate the frequency of appearance of sentences having the same meaning, and as a result, can generate the synonym dictionary 118 with higher accuracy.
  • the synonym dictionary 118 for each user is generated based on the frequency of words that appear in the processing target document 114, the synonym dictionary 118 with high accuracy is generated.
  • the synonym dictionary 118 for each user stores words included in documents that can be browsed by each user, even if the user searches for a character string using his / her synonym dictionary 118, Cannot retrieve words contained in documents that cannot be viewed. For this reason, information leakage by the synonym dictionary 118 can be prevented in advance.

Abstract

 文書処理システムは、入力された複数の文書と、各文書を閲覧可能なユーザを示すアクセスリストとを保持し、複数の文書から、所定の基準に従った複数の文字列を抽出し、メモリに保持される複数の文書の各々の中に、抽出された各文字列が示す情報が出現する頻度を算出し、各ユーザが閲覧できる各文書から抽出された各文字列と、抽出された各文字列が示す情報が出現する頻度と、が含まれる各ユーザの学習データセットを生成し、生成された各ユーザの学習データセットに基づいて、各ユーザの類義語辞書を生成する。

Description

文書処理システム、及び、文書処理方法
 本発明は、文書処理システム、特に、類義語辞書を生成する文書処理システムに関する。
 現在、ユーザは、膨大な量の電子化文書を閲覧可能である。そこで、計算機が電子化文書を処理するための技術、例えば、文書検索及び文書分類などの技術に対するニーズが高まっている。
 文書検索及び文書分類などの技術には、同義語又は類義語を持つ単語の検索漏れを回避するため、同義語辞書又は類義語辞書が必要である。このため、従来、同義語辞書又は類義語辞書を生成するための技術が提案されている。
 従来の技術として、"似た文脈を持つ単語は似ている"という概念から、"similar words"、すなわち、同義語を抽出する方法が提案されている(例えば、非特許文献1参照)。
 また、各単語が出現した文脈において同じ意味を示す類義語を、同義語として抽出する同義語展開システムが提案されている(例えば、特許文献1参照)。
 非特許文献1及び特許文献1に記載された技術は、多数の文書に基づいて同義語辞書を生成するための技術である。そして、多数の文書に基づいて同義語辞書を生成することによって、精度よく文書検索及び文書分類を行うことができる。
 なお、以下では"類義語"と"同義語"とは同じ意味として扱う。定義によっては"類義語"は近い意味を持つ言葉、"同義語"は同じ意味を持つ(異なる)言葉を指し、"類義語"の例としては"家"と"住宅"とがあり、また、"言う"と"話す"となどがあり、さらに、"同義語"の例としては"山登り"と"登山"となどがあるとする定義もある。しかし、そのような定義においても以下において、同義語辞書を作る方法と類義語辞書を作る方法とは同じ方法として扱うことができるため、以下の"類義語"という言葉が"同義語"の意味を含むこととする。
特開2010-287020号公報
Dekang Lin, "Automatic Retrieval and Clustering of Similar Words", COLING '98 Proceedings of the 17th international conference on Computational linguistics - Volume 2
 非特許文献1に記載された技術、又は、特許文献1に記載された技術を用いて生成された同義語(本実施形態における類義語)辞書を用いた文書検索技術が、例えば、企業内システム等に適用される場合がある。
 企業内には一般的に複数の従業員(雇用者を含む、以下、ユーザと記載することがある)が含まれる。そして、企業に含まれる従業員によって多くの文書が生成される。このため、企業内システムは、生成された多くの文章と特許文献1等の技術とを用いることによって、類義語辞書を精度よく生成することができる。
 これは、企業の中には、ユーザ間で文書を共有する文書共有システムを備えている企業があり、このような企業の企業内システムは、すべてのユーザが生成した文書によって類義語辞書を生成することができるためである。なお、文書共有システムとは、例えば、NAS(Network Attached Storage)による文書共有システムであり、多数の社員が文書ファイルを共有することができるシステムである。
 しかし、企業内システムにおいて生成される類義語辞書は、企業内のユーザごとに生成されるべきである。これは、企業内の各ユーザによって閲覧できる文書が異なるためである。具体的には、ユーザ1が生成した文書をユーザ2が閲覧できない場合、ユーザ1が生成した文書を用いて生成された類義語辞書には、ユーザ2が類義語であると推測できない単語が類義語として含まれる可能性があるためである。
 前述のNASを用いる企業内システムを含め、文書ごとにAccess Control List(以下、ACLと記載する)を割当て、ACLに従って各ユーザに文書を閲覧する許可を与えるシステムがある。
 非特許文献1及び特許文献1に記載された技術は、このような、文書を閲覧するための権限がユーザによって異なるシステムに関して考慮されていない。すなわち、特許文献1及び非特許文献1に記載された技術は、入力された文書に基づいて類義語辞書を出力するものであり、ユーザごとに類義語辞書を生成するものではない。このため、非特許文献1及び特許文献1に記載された技術をそのまま企業等のシステムに用いた場合、文書からの情報漏えいが発生する可能性がある。
 そこで、本発明では複数のユーザが使用する文書共有システムにおいて、ユーザごとの類義語辞書を生成し、かつ、類義語辞書による情報漏えいを未然に防止するシステム及び方法を提供することを目的とする。
 本発明の代表的な一形態によると、複数のユーザによって生成された複数の文書が入力される文書処理システムであって、前記文書処理システムは、プロセッサ及びメモリを備え、前記メモリは、前記入力された複数の文書と、前記各文書を閲覧可能なユーザを示すアクセスリストとを、保持し、前記文書処理システムは、前記複数の文書から、所定の基準に従った複数の文字列を抽出し、前記メモリに保持される複数の文書の各々の中に、前記抽出された各文字列が示す情報が出現する頻度を算出し、前記各ユーザが閲覧できる各文書から抽出された各文字列と、前記抽出された各文字列が示す情報が出現する頻度と、が含まれる 前記各ユーザの学習データセットを生成し、前記生成された各ユーザの学習データセットに基づいて、前記各ユーザの類義語辞書を生成する。
 本発明の一実施形態によると、精度が高い類義語辞書を生成し、かつ、情報漏えいを未然に防ぐことができる。
本発明の第1の実施形態の類義語辞書システムの構成を示すブロック図である。 本発明の第1の実施形態の処理対象文書に格納される文書を示す説明図である。 本発明の第1の実施形態のACL情報を示す説明図である。 本発明の第1の実施形態の全文DBを示す説明図である。 本発明の第1の実施形態の学習データセットを示す説明図である。 本発明の第1の実施形態の類義語辞書を示す説明図である。 本発明の第1の実施形態の全文DB生成プログラムによる全文DBを生成する処理を示すフローチャートである。 本発明の第1の実施形態の辞書生成プログラムによる類義語辞書を生成する処理を示すフローチャートである。 本発明の第1の実施形態のコンテンツ活用システムの構成を示すブロック図である。 本発明の第1の実施形態のコンテンツ活用システムにおける検索処理を示すシーケンス図である。 本発明の第1の実施形態のインデックスを示す説明図である。 本発明の第2の実施形態の類義語辞書システムを示す説明図である。 本発明の第2の実施形態の関係DBを示す説明図である。 本発明の第2の実施形態の関係学習データセットを示す説明図である。 本発明の第2の実施形態の関係DBを生成する処理を示すフローチャートである。 本発明の第2の実施形態の類義語辞書を生成する処理を示すフローチャートである。 本発明の第3の実施形態の共通類義語辞書を生成する処理を示すフローチャートである。 本発明の第4の実施形態の処理対象文書114に格納される文書を示す説明図である。
 以下において、本発明を実施するための形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
 複数のユーザが使用する文書共有システムが、ユーザごとの類義語辞書を生成するには次のようにすれば良い。類義語辞書を生成する一つの方法として、文書共有システムが、ACLに基づいて、ユーザが閲覧できる文書のみから類義語辞書を生成する方法である。例えば、文書共有システムは、ユーザAの類義語辞書をユーザAが閲覧できる文書から生成する。
 ただし、この方法を用いた場合、ユーザAが閲覧できる文書は数が限られているため、文書共有システムは、十分な精度の類義語辞書を生成できるとは限らない。これは、精度が高い類義語辞書を生成するためには多くの文書からの学習によって、類義語辞書を生成する必要があるためである。
 また、類義語辞書を生成する他の方法として、文書共有システムが、システム管理者の権限によって類義語辞書を生成する方法を取ることもできる。システム管理者の権限は、すべてのユーザの文書を閲覧することができる権限である。このため、文書共有システムは、ACL情報を用いることなく、対象となるすべての文書を、類義語辞書を生成するための学習データとして用いることができる。
 しかし、この場合、文書共有システムによって生成された類義語辞書は、どのユーザに対しても同じ類義語を含む類義語辞書である。例えば、ユーザ1が類義語辞書を使用した場合、別のユーザ2にしか閲覧が許可されていない文書中に含まれる単語が検索されることとなり、ユーザ1はユーザ2の文書の内容を推測することができてしまう可能性がある。
 前述の問題を解決する方法を以下に記載する。
 (第1の実施形態)
 第1の実施形態における類義語辞書システム100は、ユーザによって生成されたすべての文書において、同じ文章が出現する頻度を算出する。そして、第1の実施形態における類義語辞書システム100は、各ユーザが閲覧できる文章と、その文章に関して算出された頻度とを用いて、類義語辞書を生成する。
 図1は、本発明の第1の実施形態の類義語辞書システム100の構成を示すブロック図である。
 類義語辞書システム100は、複数のユーザが用いる文書共有システムに接続されるシステム、又は、複数のユーザが用いる文書共有システムに備わるシステムである。類義語辞書システム100は、プロセッサ101、主記憶装置102、入出力装置103、ネットワーク装置107、及び、補助記憶装置110を有する。
 プロセッサ101は、補助記憶装置110に格納されたデータ又はプログラム等を主記憶装置102に読み出し、読み出されたプログラムを主記憶装置102において実行する。
 プロセッサ101は、CPU等の演算装置である。プロセッサ101は、主記憶装置102からプログラム及びデータを読み出し、実行する。
 プロセッサ101は、プログラムの実行において、必要に応じて、補助記憶装置110からプログラム及びデータを読み出し、また、補助記憶装置110にデータを入力する。また、プロセッサ101は、必要に応じて、ネットワーク装置107を介して接続された記憶装置等からプログラム及びデータを読み出し、また、ネットワーク装置107を介して接続された記憶装置等にデータを入力する。
 さらに、プロセッサ101は、主記憶装置102、補助記憶装置110、入出力装置103、及び、ネットワーク装置107と接続される。
 主記憶装置102は、データ及びプログラム等を一時的に格納するための記憶装置である。主記憶装置102は、OS(Operating System)111及びデータ管理プログラム112を保持する。主記憶装置102は、プロセッサ101と接続される。
 入出力装置103は、ユーザ又は管理者等が、類義語辞書システムにデータを入力するための入力装置と、ユーザ又は管理者等に文書の検索結果等を表示するための出力装置である。入出力装置103は、ディスプレイ104、キーボード105、及び、マウス106を有する。入出力装置103は、プロセッサ101と接続される。
 ネットワーク装置107は、類義語辞書システムの外部に文書共有システムの記憶装置が配置された場合、文書共有システムの記憶装置と類義語辞書システムとを接続するためのネットワークインタフェースである。ネットワーク装置107は、プロセッサ101と接続される。
 補助記憶装置110は、ディスク装置等の、データ又はプログラムを保持するための記憶装置である。補助記憶装置110は、テキストデータベース113、全文DB116、学習データセット117、及び、類義語辞書118を有する。補助記憶装置110は、プロセッサ101と接続される。
 テキストデータベース113は、処理対象文書114、及び、ACL情報115を有する。
 OS111は、類義語辞書システム100を動作させるための基本ソフトウェアである。
 データ管理プログラム112は、ユーザごとに類義語辞書118を生成する機能を有する。また、データ管理プログラム112は、ユーザ又はプログラムから要求された検索文字列に従って、要求された検索文字列の類義語を、ユーザ又はプログラムに返答するプログラムである。
 データ管理プログラム112は、全文DB生成プログラム601、辞書生成プログラム122、及び、辞書検索プログラム125を有する。
 全文DB生成プログラム601は、全文DB116を生成するための機能を有する。辞書生成プログラム122は、類義語辞書118を生成するための機能を有する。辞書検索プログラム125は、プログラム又はユーザからの検索要求に従って、類義語を類義語辞書118から検索し、プログラム又はユーザに検索要求に対する返信として検索された類義語を送信するための機能を有する。
 テキストデータベース113は、処理対象文書114とACL情報115とを保持する。処理対象文書114は、類義語辞書118を生成するために、類義語を抽出するための複数の文書を含む。すなわち、処理対象文書114は、各ユーザが生成した文書である。ACL情報115は、各ユーザが閲覧できる文書を示す情報である。
 テキストデータベース113は、文書共有システムにおける共有文書の記憶装置と同一でもよい。文書共有システムにおける共有文書の記憶装置には、各ユーザが生成した文書が格納される。
 また、データ管理プログラム112は、文書共有システムにおける共有文書の記憶装置から文書を取得し、処理対象文書114としてテキストデータベース113に格納してもよい。また、データ管理プログラム112は、文書共有システムにおける共有文書の記憶装置における、文書のポインタをテキストデータベース113に格納することによって、処理対象文書114をテキストデータベース113に仮想的に格納してもよい。
 また、データ管理プログラム112は、ネットワーク装置107を介して、ユーザが個人的に所有する文書を取得し、処理対象文書114として、テキストデータベース113に格納してもよい。また、データ管理プログラム112は、ユーザが個人的に所有する文書の格納場所を示すポインタを、テキストデータベース113に格納することによって、処理対象文書114をテキストデータベース113に仮想的に格納してもよい。
 全文DB116は、処理対象文書114に含まれるすべての文章と、ACLとが対応付けられて格納されるDBである。学習データセット117は、全文DB116が、ACLに従って、ユーザが閲覧できる文章ごとに分割された情報である。
 類義語辞書118は、学習データセット117に基づいて生成されたユーザごとの情報である。学習データセット117及び類義語辞書118は、ユーザごとに生成される。
 なお、図1に示す補助記憶装置110は類義語辞書システム100が有する。しかし、補助記憶装置110内の一部又はすべてのデータが別筐体に格納され、データ管理プログラム112が、ネットワーク装置107を介して別筐体に格納されたデータを取得してもよい。
 さらに、類義語辞書システム100は、入出力装置103又はネットワーク装置107を有さなくてもよい。類義語辞書システム100が入出力装置103を有さない場合、データ管理プログラム112は、ネットワーク装置107を介して取得されるデータのみを、テキストデータベース113に格納してもよい。また、類義語辞書システム100がネットワーク装置107を有さない場合、データ管理プログラム112は、入出力装置103から入力されたデータのみを、テキストデータベース113に格納してもよい。
 本実施形態において、類義語辞書システム100は、プログラム又はユーザから類義語を要求されるが、類義語を要求するプログラムは、類義語辞書システム100が有する図示しないプログラムでもよいし、他の装置が有するプログラムでもよい。類義語を要求するプログラムが、他の装置が有するプログラムである場合、類義語を要求するプログラムは、ネットワーク装置107を介して類義語辞書システム100に要求を送信する。
 類義語を要求するユーザは、入出力装置103を介して要求を類義語辞書システム100に入力してもよいし、ネットワーク装置107を介して要求を類義語辞書システム100に入力してもよい。
 なお、類義語辞書システム100が有する各プログラムの一部又は全部の機能は、例えば、集積回路等のハードウェアによって実装されてもよい。また、前述の各プログラムの機能は、プロセッサによってそれぞれの機能を実現するプログラムが解釈され、実行されてもよい。
 さらに、本実施形態の各機能を実現するためのプログラム、テーブル、及び、ファイル等は、フラッシュメモリ、ハードディスク、若しくは、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、若しくは、DVD等の記録媒体を用いて、類義語辞書システム100にインストールされてもよい。
 また、類義語辞書システム100が有する各プログラムは、一つのプログラムによって実装されてもよいし、各プログラムにおいて実行される処理の単位ごとに複数のプログラムに分割されて実装されてもよい。
 図2は、本発明の第1の実施形態の処理対象文書114に格納される文書を示す説明図である。
 処理対象文書114には、複数のユーザによって生成された複数の文書が含まれる。
 図2に示す処理対象文書114には、社員Aによって生成された文書群202と社長によって生成された文書群203とが含まれる。処理対象文書114は、文書群202に、社員A(ユーザID"2001")によって生成された複数の文書204、文書206、および、文書207を含み、文書群203に、社長(ユーザID"1001")によって生成された文書205を含む。
 なお、図2に示す文書群203は、文書205のみを含むが、複数の文書を含んでもよい。また、処理対象文書114は、社員Aに対応する文書群202、及び、社長に対応する文書群203以外に、複数のユーザが生成した文書を含んでもよい。
 文書204は、点検報告書を示す複数の文章を含む。文書205は、合併計画書を示す四つの文章を含む。文書206は、検討書を示す一つの文書を含む。文書207は、社内ブログに掲載される記事を示す一つの文章を含む。文書204、文書205、文書206、及び、文書207は、図2に示す文章よりも多くの文章を、含んでもよい。
 なお、本実施形態における文章とは、日本語においては句点("。")によって区切られる文字列であり、英語においてはピリオド(".")によって区切られる文字列である。また、文書204~文書207には、文書を一意に識別するための識別子があらかじめ割当てられている。
 文書204に含まれる文章と文書205に含まれる文章とは、一部の文章の意味が共通するが、一部の文章の意味が異なる。また、本実施形態において、社長によって生成された文書群203は、社員Aによる閲覧を許可されていない。
 このため、辞書生成プログラム122は、社員Aの類義語辞書118を生成するための学習データとして文書205を用いることができない。
 例えば、文書205中の四文目である、"これらの点検結果はX社のY工場よりも優れており、X社の買収に有利に働く。"という文章には、社員Aが知ることを許されていない情報が含まれる。このような文章を用いて社員Aの類義語辞書118を生成した場合、社員Aが社員Aの類義語辞書118の内容から、社長によって生成された文書群203の内容を推測できる可能性が発生する。
 このため、データ管理プログラム112は、他のユーザが作成した文章も含め、社員Aが読み取ることを許されている全文章中から社員Aの文章と同一の文章が出現した頻度を算出し、算出された頻度に従って、類義語辞書118を生成する。これによって、データ管理プログラム112は、社員Aの類義語辞書118を生成するための学習データの量を増やすことができる。そして、データ管理プログラム112は、社員Aの類義語辞書118を精度よく生成することができる。
 図3は、本発明の第1の実施形態のACL情報115を示す説明図である。
 ACL情報115は、ファイルの作成時にシステムによって生成されたり、管理者等によってあらかじめ生成された情報である。ACL情報115は、文書名1501、及び、ACL情報1502を含む。また、図3に示すACL情報115は、行1503~行1506を含む。
 文書名1501は、処理対象文書114に含まれる各文書の識別子を示す。ACL情報1502には、文書名1501が示す文書を閲覧できるユーザのユーザIDが含まれる。
 例えば、行1503の文書名1501が示す文書が、図2に示す文書204である場合、文書204は、ユーザIDが"1001"のユーザ(すなわち、社長)と、ユーザIDが"2001"のユーザ(すなわち、社員A)とによって閲覧されることが許可される。
 また、行1506の文書名1501が示す文書が、図2に示す文書205である場合、文書205は、ユーザIDが"1001"のユーザ(すなわち、社長)のみによって閲覧されることが許可される。
 図4は、本発明の第1の実施形態の全文DB116を示す説明図である。
 全文DB116は、後述する全文DB生成プログラム601の処理によって生成される。全文DB116は、管理者による指示があったタイミングにおいて、定期的なタイミングにおいて、又は、ファイルが作成若しくは更新されたりシステムがアイドル状態になったことをきっかけとする等のシステムイベントが発生したタイミングにおいて、生成される。
 全文DB116は、文章301、ACL302、及び、頻度303を含む。また、図4に示す全文DB116は、行304~行309を含む。
 文章301は、処理対象文書114に含まれる文章の文字列が含まれる。
 ACL302は、文章301に格納された文章を閲覧できるユーザのユーザIDを含む。
 例えば、行304の文章301は、ユーザIDが"1001"、及び"2001"であるユーザが閲覧できる文章を示す。また、例えば、行307の文章301は、ユーザIDが"2001"であるユーザが閲覧できる文章を示す。
 頻度303は、文章301に示される文章が、処理対象文書114に含まれるすべての文書において出現した回数を示す。
 例えば、行304の頻度303は、行304の文章301が示す文章と同じ二つの文章が、処理対象文書114に出現したことを示す。また、例えば、行307の頻度303は、行307の文章301が示す文章と同じ一つの文章が、処理対象文書114に出現したことを示す。
 図5は、本発明の第1の実施形態の学習データセット117を示す説明図である。
 学習データセット117は、全文DB116から抽出された各ユーザが閲覧可能な文章を、ユーザごとに保持するテーブルである。図5に示す学習データセット117は、社員A(ユーザID"2001")の学習データセット117であり、社員Aが閲覧可能な文章を含む。辞書生成プログラム122は、図5に示す学習データセット117をユーザごとに生成する。
 学習データセット117は、文章1101、及び、頻度1102を含む。また、図5に示す学習データセット117は、行1103~行1107を含む。
 文章1101は、ユーザが閲覧可能な文章を示す。文章1101に格納される文字列は、全文DB116の各ユーザの文章301に格納される文字列に対応する。図5に示す文章1101は、図4に示す文章301に対応する。
 頻度1102は、文章1101が示す文章と同一の文章が、処理対象文書114に含まれるすべての文書において出現した回数を示す。頻度1102は、全文DB116の頻度303の値と同じ値を含む。図5に示す頻度1102は、図4に示す頻度303に対応する。
 例えば、行1103は、図4に示す行304に対応する。また、行1106は、図4に示す行307に対応する。
 図6は、本発明の第1の実施形態の類義語辞書118を示す説明図である。
 類義語辞書118は、学習データセット117に基づいて生成されるユーザごとの類義語辞書である。辞書生成プログラム122は、類義語辞書118をユーザごとに生成する。図6に示す類義語辞書118は、社員A(ユーザID"2001")の類義語辞書118である。
 類義語辞書118は、見出し語1301及び類義語1302を含む。また、図6に示す類義語辞書118は、行1303~行1307を含む。
 辞書生成プログラム122は、非特許文献1又は特許文献1に提案された技術を用いて、学習データセット117から類義語辞書118を生成する。
 見出し語1301は、見出し語である。類義語1302は、見出し語と類似する単語のリストを示す。
 図7は、本発明の第1の実施形態の全文DB生成プログラム601による全文DB116を生成する処理600を示すフローチャートである。
 図7に示す処理600は、後述する処理において、辞書生成プログラム122が全文DB生成プログラム601を起動することによって開始される。
 全文DB生成プログラム601は、辞書生成プログラム122によって起動された場合、処理対象文書114に格納されたすべての文書に、ステップ502以降の処理が行われたか否かを判定する(501)。処理対象文書114に格納されたすべての文書に、ステップ502以降の処理が行われた場合、全文DB生成プログラム601は、図7に示す処理600を終了する。
 処理対象文書114に格納された文書に、ステップ502以降の処理が行われていない文書がある場合、全文DB生成プログラム601は、処理対象文書114から、まだステップ502以降の処理が行われていない文書を一つ取得する。なお、ここで取得された文書を、以下において文書Aと記載する。
 全文DB生成プログラム601は、文書Aの識別子を文書名1501に含むACL情報115の行を抽出し、抽出された行のACL情報1502から、文書Aの閲覧を許可されたユーザのユーザIDを特定する。そして、全文DB生成プログラム601は、特定されたユーザのユーザIDを、第1のユーザリスト変数に格納する(502)。
 第1のユーザリスト変数は、第1の実施形態において、主記憶装置102に一時的に保持される変数であり、図7に示す処理を行うための変数である。第1のユーザリスト変数には、複数のユーザIDが格納されてもよい。
 ステップ502の後、全文DB生成プログラム601は、文書Aに含まれるすべての文章に、ステップ504以降の処理を実行したか否かを判定する(503)。文書Aに含まれるすべての文章に、ステップ504以降の処理を実行した場合、全文DB生成プログラム601は、ステップ502以降の処理がまだ行われていない文書にステップ502以降の処理を行うため、ステップ501へ戻る。
 文書Aに含まれる文章に、ステップ504以降の処理が実行されていない文章がある場合、全文DB生成プログラム601は、文書Aからステップ504以降の処理が実行されていない文章を取得する。ここで、取得された文章を文章Bと記載する。
 そして、全文DB生成プログラム601は、文章Bが全文DB116の文章301に格納されているか否かを判定する(504)。ステップ504において全文DB生成プログラム601は、文章Bの文字列と完全に一致する文字列を含む文章(すなわち、文章Bと同一の文章)が文章301に含まれる場合、文章Bが文章301に格納されていると判定する。
 文章Bが全文DB116の文章301に格納されていると、ステップ504において判定した場合、全文DB生成プログラム601は、ステップ507を実行する。
 文章Bが全文DB116の文章301に格納されていないと、ステップ504において判定した場合、全文DB生成プログラム601は、全文DB116に新しい行を追加する(505)。また、ステップ505において、全文DB生成プログラム601は、追加された行の頻度303に"0"を格納する。
 文章Bが全文DB116の文章301に格納されているとステップ504において判定した場合、全文DB生成プログラム601は、文章Bを文章301に格納する(506)。ステップ506において全文DB生成プログラム601は、文章Bが含まれる文書Aを生成したユーザのユーザIDと、文章Bとを対応付けて文章301に格納する。
 また、ステップ505の後に実行されたステップ506において、全文DB生成プログラム601は、追加された行の文章301に文章Bを格納する。
 ステップ506の後、全文DB生成プログラム601は、ステップ506において文章Bが格納された行の頻度303に"1"を加算する(507)。
 ステップ507の後、全文DB生成プログラム601は、文章Bが格納された行のACL302を、第1のユーザリスト変数に格納された値に基づいて、更新する(508)。具体的には、全文DB生成プログラム601は、文章Bが格納された全文DB116の行のACL302の値を抽出し、抽出された値と、第1のユーザリスト変数に格納された値との和演算(OR演算)の結果を取得する。そして、全文DB生成プログラム601は、取得された和演算の結果を、文章Bに対応する全文DB116の行のACL302に格納する。なお、第1のユーザリスト変数に格納された値の中にすでにACL302から抽出した値が格納されていた場合は、和演算の結果をACL302に格納する手順は省略することが可能であることは言うまでもない。
 ステップ508の後、全文DB生成プログラム601は、ステップ503を実行し、文書Aのすべての文章にステップ504以降の処理が実行されるまで、ステップ504~ステップ508を繰り返す。
 全文DB生成プログラム601は、処理対象文書114に格納されたすべての文書に、ステップ502以降の処理が行われたとステップ501において判定した場合、図7に示す処理600を終了し、辞書生成プログラム122に処理600の終了を通知する。
 図7に示す処理において全文DB116が生成されることによって、全文DB生成プログラム601は、処理対象文書114において同一の文章が出現する頻度を算出することができる。
 図8は、本発明の第1の実施形態の辞書生成プログラム122による類義語辞書118を生成する処理を示すフローチャートである。
 辞書生成プログラム122は、管理者によって指示されたタイミングにおいて、又は、定期的に、図8に示す処理を開始する。また、辞書生成プログラム122は、処理対象文書114に新たな文書が追加されたり、文書が更新されたり、システムがアイドル状態になったりすることをきっかけとする等のシステムイベントが発生したタイミングで、図8に示す処理を開始してもよい。
 図8に示す処理において、辞書生成プログラム122は、まず、全文DB生成プログラム601を起動し、全文DB生成プログラム601に図7に示す処理600を実行させる。
 全文DB生成プログラム601から処理600の終了を通知されたあと、辞書生成プログラム122は、すべてのユーザにステップ603以降の処理が行われたか否かを判定する(602)。なお、類義語辞書システム100は、文書共有システムを用いるすべてのユーザのユーザIDをあらかじめ保持する。そして、全文DB生成プログラム601は、類義語辞書システム100にあらかじめ保持されたユーザIDを用いて、ステップ602における処理を行う。
 すべてのユーザにステップ603以降の処理が行われたと、ステップ602において判定した場合、辞書生成プログラム122は、図8に示す処理を終了する。
 ユーザにステップ603以降の処理が行われていないユーザがある場合、辞書生成プログラム122は、ステップ603以降の処理が行われていないユーザIDを一つ特定する。ここで、特定されたユーザIDを、ユーザCとする。そして、辞書生成プログラム122は、全文DB116のすべての行に、ユーザCのためのステップ604が実行されたか否かを判定する(603)。全文DB116のすべての行に、ユーザCのためのステップ604が実行された場合、辞書生成プログラム122は、ステップ605を実行する。
 全文DB116の行に、ユーザCのためのステップ604を実行していない行がある場合、辞書生成プログラム122は、ステップ604を実行する。ステップ604において、辞書生成プログラム122は、ユーザCのためのステップ604を実行していない行を全文DB116から一つ抽出する。そして、抽出された行のACL302にユーザCのユーザIDが格納されている場合、辞書生成プログラム122は、抽出された行の文章301の文章を、ユーザCの学習データセット117の文章1101に格納する。
 さらに、辞書生成プログラム122は、ステップ604において、抽出された行の頻度303の値と同じ値を、抽出された行の文章を格納した学習データセット117の行の頻度1102に格納する。
 ステップ603及びステップ604を繰り返し実行することによって、辞書生成プログラム122は、ユーザCの学習データセット117を生成する。例として、ステップ602において、ユーザID"2001"が特定された後のステップ604の処理を以下に示す。
 辞書生成プログラム122は、ステップ604において、行304のACL302に、ユーザID"2001"が格納されていると判定したときは以下の処理を実行する。ユーザID"2001"の学習データセット117の行1103の文章1101に、行304の文章301に格納される文字列を格納する。また、辞書生成プログラム122は、ユーザID"2001"の学習データセット117の行1103の頻度1102に、行304の頻度303の値を格納する。
 また、辞書生成プログラム122は、ステップ604において、行309のACL302に、ユーザID"2001"が格納されていないと判定した場合、行309の文章301に格納された文字列を、ユーザID"2001"に対応する学習データセット117に格納する処理を行わない。
 ステップ603及びステップ604を繰り返すことによって、辞書生成プログラム122は、学習データセット117を生成する。辞書生成プログラム122は、各ユーザに対応する類義語辞書118を生成するための学習データセット117を生成する過程において、学習データセット117に、処理対象文書114において文章が出現した頻度を付加することができる。そして、これによって、辞書生成プログラム122は、すべてのユーザが生成したすべての文書に基づいて、各ユーザに対応する類義語辞書118を生成することができる。
 全文DB116のすべての行にステップ604が実行されたと、ステップ603において判定した場合、辞書生成プログラム122は、生成された学習データセット117を用いて、ユーザCの類義語辞書118を生成する(605)。
 辞書生成プログラム122は、ステップ605において、学習データセット117のすべての行に含まれる文章1101の文字列を読み出し、読み出された文字列に含まれる単語間の類似度を、頻度1102の値を用いて算出する。そして、辞書生成プログラム122は、算出された類似度が所定の閾値以上である単語の組みを類義語辞書118の各行に格納することによって、類義語辞書118を生成する。
 辞書生成プログラム122は、類似度を判定するための所定の閾値を、ステップ605において、入出力装置103又はネットワーク装置107を介して管理者又はユーザから入力されてもよい。
 また、辞書生成プログラム122は、類似度を判定するための所定の閾値を、ステップ605において、補助記憶装置110から読み出してもよい。補助記憶装置110には、類似度を判定するための所定の閾値があらかじめ格納されていてもよい。
 ステップ605において辞書生成プログラム122は、非特許文献1又は特許文献1に記載される技術、若しくは、形態素解析を用いて単語間の類似度を算出する等の一般的な技術を用いて、単語間の類似度を算出する。
 ステップ605の後、辞書生成プログラム122は、ステップ602を実行し、すべてのユーザについてステップ603の処理を行う。
 ステップ605に示す処理によって、類義語辞書118が生成される。図8に示す処理によって生成される類義語辞書118の単語(見出し語1301及び類義語1302に格納される単語)は、各ユーザが閲覧可能な文書から抽出された単語である。このため、他のユーザによって生成された文書に含まれる単語が類義語辞書118から検索されることによって、情報漏えいが発生することを防ぐことができる。
 一方で、各単語の類似度を算出するために用いられる頻度には、処理対象文書114において文章が出現した頻度が用いられる。このため、ステップ605において算出される類似度は精度が高い。すなわち、ステップ605において生成される類義語辞書118は精度が高い。
 辞書検索プログラム125は、ユーザ又はプログラムから検索要求を受信した場合、検索要求に含まれるユーザIDに対応する類義語辞書118を特定する。そして、特定された類義語辞書118から、検索要求に含まれる単語を検索することによって、ユーザ又はプログラムに類義語を提供する。
 第1の実施形態によれば、ユーザごとの類義語辞書118が、処理対象文書114において出現した単語の頻度に基づいて生成されるため、精度が高い類義語辞書118が生成される。
 一方で、ユーザごとの類義語辞書118には、各ユーザが閲覧できる文書に含まれる単語が格納されるため、ユーザ1によって文字列が検索された場合、ユーザ1は、ユーザ1が閲覧できない文書に含まれる単語を取得することがない。このため、類義語辞書118による情報漏えいを未然に防ぐことができる。
 さらに、第1の実施形態によれば、辞書生成プログラム122は、同一の文章が出現した頻度を用いて、類義語辞書118を生成する。このため、辞書生成プログラム122は、同じ文章が出現した頻度を正確に算出することができ、その結果、より精度の高い類義語辞書118を生成することができる。
 以下に、類義語辞書118を用いたシステムの例としてコンテンツ活用システムを示す。このコンテンツ活用システムは、ユーザが入力する検索文字列に対応するコンテンツをファイルストレージから検索するシステムであり、ユーザごとの類義語辞書118に従って、ユーザが閲覧可能な類義語を適切に検索するシステムである。
 図9は、本発明の第1の実施形態のコンテンツ活用システムの構成を示すブロック図である。
 図9に示すコンテンツ活用システムは、図1に示す類義語辞書システム100をユーザが利用するためのシステムの一例である。コンテンツ活用システムは、ユーザ端末1001、検索システム1002、ファイルストレージ1003、ネットワーク910、及び、データ辞書管理システム1004を有する。
 ユーザ端末1001、検索システム1002、ファイルストレージ1003、及び、データ辞書管理システム1004は、プロセッサ、及び、メモリを備える計算機である。ネットワーク910は、LAN、インターネット、又は、WANなどのネットワークである。
 ユーザ端末1001は、ユーザが検索文字列を入力するための端末である。ユーザ端末1001は、検索システム1002と接続される。
 検索システム1002は、ユーザ端末1001から検索文字列を受信した場合、ユーザが閲覧したい文書等のコンテンツを、ユーザ端末1001に送信する。検索システム1002は、インデックス909を有し、ユーザ端末1001及びネットワーク910と接続される。
 ここで、コンテンツとは、テキストのみが含まれる文書でもよいし、タグの文字列が不可された画像又は映像等でもよい。コンテンツが画像等である場合、インデックス909は、画像等に付加されたタグに含まれる単語を示す。このため、以下において、画像等に付加されたタグも、文書と同じく処理対象文書114に含まれる。
 ファイルストレージ1003は、ユーザによって生成された文書を格納するためのテキストデータベース113を有する。ファイルストレージ1003は、ネットワーク910と接続される。
 データ辞書管理システム1004は、図1に示す類義語辞書システム100のデータ管理プログラム112を有し、類義語辞書118、全文DB116、学習データセット117を保持する。データ辞書管理システム1004は、ネットワーク910と接続される。
 ネットワーク910は、検索システム1002、ファイルストレージ1003、及び、データ辞書管理システム1004と接続されている。
 このため、データ辞書管理システム1004及びファイルストレージ1003は、データ辞書管理システム1004とファイルストレージ1003との間で通信することによって、類義語辞書システム100の機能をユーザに提供することができる。
 検索システム1002は、テキストデータベース113の処理対象文書114とACL情報115とに基づいて、インデックス909をあらかじめ生成する。
 図10は、本発明の第1の実施形態のコンテンツ活用システムにおける検索処理を示すシーケンス図である。
 ユーザが、特定のコンテンツを取得するため、コンテンツを示す検索文字列をユーザ端末1001に入力した場合、ユーザ端末1001は、検索文字列を入力したユーザのユーザIDと入力された検索文字列とを含む検索要求を生成する。そして、生成された検索要求を検索システム1002へ送信する(1005)。
 シーケンス1005の後、検索システム1002は、受信した検索要求をデータ辞書管理システム1004へ送信する(1006)。
 シーケンス1006の後、データ辞書管理システム1004は、辞書検索プログラム125を起動させる。辞書検索プログラム125は、受信した検索要求に含まれるユーザIDを用いて、検索すべき類義語辞書118を特定する。そして、特定された類義語辞書118の見出し語1301及び類義語1302から検索文字列に対応する類義語を検索する(1007)。
 処理1007によって、類義語が検索された場合、データ辞書管理システム1004は、検索された類義語を検索システム1002へ送信する(1008)。
 シーケンス1008の後、検索システム1002は、シーケンス1005において送信されたユーザIDと、シーケンス1008において送信された類義語とに基づいて、図11に示すインデックス909から、文書名1403を取得する(1009)。
 図10に示す処理1009によって文書名1403が取得されたあと、検索システム1002は、検索された文書名1403を含むファイル取得要求を生成する。そして、生成されたファイル取得要求をファイルストレージ1003へ送信する(1010)。
 シーケンス1010の後、ファイルストレージ1003は、受信したファイル取得要求が含む文書名1403に基づいて、コンテンツを検索システム1002へ送信する(1011)。
 シーケンス1011の後、検索システム1002は、受信したコンテンツをユーザ端末1001へ送信する。
 図11は、本発明の第1の実施形態のインデックス909を示す説明図である。
 インデックス909は、コンテンツが含む文字列(キーワード)が、コンテンツのいずれに格納されるかを示す情報である。インデックス909は、検索システム1002によって生成される。検索システム1002は、定期的又は管理者等の指示を受けた際、ファイルストレージ1003からテキストデータベース113を取得し、インデックス909を生成する。
 インデックス909は、キーワード1401、ACL1402、文書名1403、及び、オフセット1404を含む。
 キーワード1401は、コンテンツに含まれる単語を示す。キーワード1401は、コンテンツが画像等である場合、コンテンツに付加されたタグに含まれる単語を示す。ACL1402は、文書等、すなわち、コンテンツを閲覧可能なユーザのユーザIDを示す。
 文書名1403は、ファイルストレージ1003のテキストデータベース113に格納されるコンテンツの識別子を示す。オフセット1404は、コンテンツが文書である場合、文書に含まれる単語の位置を示す。また、オフセット1404は、コンテンツが画像である場合、画像に付加されたタグにおける単語の位置を示す。
 検索システム1002は、処理1009において、シーケンス1008において送信された類義語をキーワード1401に含み、シーケンス1005において送信されたユーザIDをACL1402に含むインデックス909の行を特定し、特定された行の文書名1403を取得する。
 前述の処理によれば、データ辞書管理システム1004が、ユーザごとの類義語辞書118を保持する。また、ユーザごとの類義語辞書118は、ファイルストレージ1003に格納されたすべての文書を用いて生成されているため、精度が高い。このため、前述のコンテンツ活用システムは、ユーザが入力する検索文字列に対応するコンテンツをファイルストレージ1003から検索する際、適切な文字列を用いてコンテンツをユーザに提供できる。
 一方で、検索結果を提供する類義語辞書118は、検索文字列を入力したユーザ以外のユーザが入力した単語を含まないため、検索文字列を入力したユーザは、ユーザが閲覧できないコンテンツを取得することができない。このため、前述の処理によれば、ユーザへの情報漏えいを未然に防ぐことができる。
 (第2の実施形態)
 第1の実施形態において、類義語辞書システム100は、文書に含まれる文章が出現する頻度を算出することによって類義語辞書118を生成した。第2の実施形態において、類義語辞書システム100は、文書に含まれる二つの単語と、二つの単語の関係性との組合せが出現する頻度を算出することによって、類義語辞書118を生成する。
 図12は、本発明の第2の実施形態の類義語辞書システム1000を示す説明図である。
 第2の実施形態の類義語辞書システム1000は、ユーザが用いる文書共有システムに接続されるシステム、又は、ユーザが用いる文書共有システムに備わるシステムである。
 第2の実施形態の類義語辞書システム1000は、第1の実施形態の類義語辞書システム100と同様である。すなわち、類義語辞書システム1000は、類義語辞書システム100と同じく、プロセッサ101、主記憶装置102、入出力装置103、ネットワーク装置107、及び、補助記憶装置110を有する。
 ただし、類義語辞書システム1000の主記憶装置102が有するデータ管理プログラム112には、関係DB生成プログラム801が含まれる。関係DB生成プログラム801は、関係DB119を生成する機能を有するプログラムである。
 また、類義語辞書システム1000の補助記憶装置110は、関係DB119、及び、関係学習データセット120を有する。関係DB119は、文書内の二つの単語間の関係を示すテーブルである。関係学習データセット120は、関係DB119に基づいてユーザごとに生成される学習データセットである。
 第2の実施形態の類義語辞書システム1000が有する各プログラムの機能は、第1の実施形態の類義語辞書システム100が有する各プログラムの機能と同じく、集積回路等のハードウェアによって実装されてもよい。また、類義語辞書システム1000が有する各プログラム、及び、各テーブル等は、フラッシュメモリ等によって類義語辞書システム1000にインストールされてもよい。
 図13は、本発明の第2の実施形態の関係DB119を示す説明図である。
 関係DB119は、処理対象文書114及びACL情報115に基づいて、関係DB生成プログラム801によって生成される。関係DB119は、処理対象文書114の各文章に含まれる二つの単語と、二つの単語の係り受けとを示す。二つの単語の係り受けとは、すなわち、二つの単語の関係を示す。
 関係DB119は、単語1(401)、関係402、単語2(403)、ACL404、及び、頻度405を含む。また、図13に示す関係DB119は、行406~行411を含む。
 単語1(401)及び単語2(403)には、一つの文章から抽出された二つの単語が格納される。関係402は、単語1(401)が示す単語と単語2(403)が示す単語とが抽出された文章における、単語1(401)が示す単語と単語2(403)が示す単語との関係を示す。
 図13に示す関係402に格納される値は、単語1(401)に対する単語2(403)の役割を示す。これによって、図13に示す関係402に格納される値は、単語1(401)が示す単語と単語2(403)が示す単語との関係を示す。
 ACL404は、単語1(401)及び単語2(403)が示す二つの単語が抽出された文章が含まれる文書を、閲覧できるユーザのユーザIDを示す。頻度405は、処理対象文書114において、単語1(401)、関係402、及び、単語2(403)が示す組合せが出現した回数を示す。
 例えば、図2に示す文書207から関係DB119が生成される場合、関係DB生成プログラム801は、"私は茶色い犬を飼っている。"という文書から、"私"、"茶色い"、"犬"、及び、"飼っている"を、単語として抽出する。そして、抽出された単語の組合せ(例えば、"飼っている"と"私")を、単語1(401)及び単語2(403)に格納し、それぞれの単語の組合せの関係(例えば、"主語")を関係402に格納する。
 図14は、本発明の第2の実施形態の関係学習データセット120を示す説明図である。
 関係学習データセット120は、関係DB119から各ユーザが閲覧可能な文書に含まれる係り受けの関係のみを抽出して生成されたテーブルである。図14に示す関係学習データセット120は、ユーザIDが"2001"であるユーザに関する係り受けの関係を、図13に示す関係DB119から抽出した結果を示す。辞書生成プログラム122は、図14に示す関係学習データセット120と同様のテーブルを、ユーザごとに生成する。
 関係学習データセット120は、単語1(1201)、関係(1202)、単語2(1203)、及び、頻度1204を含む。図14に示す関係学習データセット120は、行1205~行1210を含む。
 単語1(1201)は一つ目の単語であり、図13に示す単語1(401)に対応する。関係1202は単語1(1201)と単語2(1203)との関係が記載されており、図13に示す関係402に対応する。
 単語2(1203)は二つ目の単語であり、図13に示す単語2(403)に対応する。頻度1204は、図13に示す頻度405に対応する。
 例えば、図14に示す行1205は、図13に示す行406に対応し、行1205の頻度1204の値は、行406の頻度405の値と同じである。
 図15は、本発明の第2の実施形態の関係DB119を生成する処理800を示すフローチャートである。
 図15に示す処理800は、後述する図16に示す処理において、辞書生成プログラム122が関係DB生成プログラム801を起動することによって開始される。
 関係DB生成プログラム801は、辞書生成プログラム122によって起動された場合、処理対象文書114に格納されたすべての文書に、ステップ702以降の処理が行われたか否かを判定する(701)。処理対象文書114に格納されたすべての文書に、ステップ702以降の処理が行われた場合、関係DB生成プログラム801は、図15に示す処理800を終了する。
 処理対象文書114に格納された文書に、ステップ702以降の処理が行われていない文書がある場合、関係DB生成プログラム801は、処理対象文書114から、まだステップ802以降の処理が行われていない文書を一つ取得する。なお、ここで取得された文書を、以下において文書Dと記載する。
 関係DB生成プログラム801は、文書Dの識別子を文書名1501に含むACL情報115の行を抽出し、抽出された行のACL情報1502から、文書Dの閲覧を許可されたユーザのユーザIDを特定する。そして、関係DB生成プログラム801は、特定されたユーザのユーザIDを、第2のユーザリスト変数に格納する(702)。
 第2のユーザリスト変数は、第2の実施形態において、主記憶装置102に一時的に保持される変数であり、図15に示す処理を行うための変数である。第2のユーザリスト変数には、ACL情報115に従って、複数のユーザIDが格納されてもよい。
 ステップ702の後、関係DB生成プログラム801は、文書Dに含まれるすべての文章に、ステップ704以降の処理が行われたか否かを判定する(703)。文書Dに含まれるすべての文章に、ステップ704以降の処理を実行した場合、関係DB生成プログラム801は、新たな文書に図15に示す処理を実行するため、ステップ701へ戻る。
 文書Dに含まれる文章に、ステップ704以降の処理が実行されていない文章がある場合、関係DB生成プログラム801は、文書Dからステップ704以降の処理が実行されていない文章を取得する。ここで、取得された文章を文章Eと記載する。
 そして、関係DB生成プログラム801は、文章Eに含まれる二つの単語の組合せを抽出し、抽出されたすべての組合せに、ステップ705以降の処理が実行されたか否かを判定する(704)。抽出されたすべての組合せに、ステップ705以降の処理が実行された場合、関係DB生成プログラム801は、新たな文章にステップ704以降の処理を実行するため、ステップ703に戻る。
 抽出された組合せに、ステップ705以降の処理が実行されていない組合せがある場合、関係DB生成プログラム801は、抽出された二つの単語の係り受けの関係を特定する。そして、関係DB生成プログラム801は、抽出された二つの単語と二つの単語の関係とを示す行が、関係DB119に既に含まれているか否かを判定する(705)。
 例えば、文書Dが図2に示す文書205であり、文章Eが"以下の結果を参照すること。"であり、ステップ704において"結果"と"参照"とが抽出され、関係として"被目的語"が特定され、ステップ705において既に図13に示す関係DB119が生成されている場合、関係DB生成プログラム801は、ステップ705において、図13の関係DB119の行411に、抽出された二つの単語と二つの単語の関係とが既に含まれる判定する。
 抽出された二つの単語と二つの単語の関係とを示す行が、関係DB119に既に含まれると、ステップ705において判定した場合、関係DB生成プログラム801は、ステップ707を実行する。
 抽出された二つの単語と二つの単語の関係とを示す行が、関係DB119に含まれないと、ステップ705において判定した場合、関係DB生成プログラム801は、関係DB119に新しい行を追加する。そして、関係DB生成プログラム801は、追加された行の単語1(401)、単語2(403)、及び、関係402に、抽出された二つの単語と二つの単語の関係とを格納する(706)。
 なお、ステップ706において関係DB生成プログラム801は、追加された行の頻度405に"0"を格納する。
 抽出された二つの単語と二つの単語の関係とを示す行が関係DB119に含まれていると、ステップ705において判定した場合、又は、ステップ706の後、関係DB生成プログラム801は、関係DB119の頻度405に"1"を加算する(707)。
 具体的には、ステップ706の後実行されるステップ707において、関係DB生成プログラム801は、ステップ706において追加された行の頻度405に"1"を加算する。また、ステップ705において、抽出された二つの単語と二つの単語の関係とを示す行が関係DB119に含まれると判定した後のステップ707において、関係DB生成プログラム801は、抽出された二つの単語と二つの単語の関係とを示す行の頻度405に"1"を加算する。
 ステップ707の後、関係DB生成プログラム801は、ステップ707において頻度405を更新された行のACL404を、第2のユーザリスト変数に格納された値に基づいて、更新する(708)。
 具体的には、ステップ708において関係DB生成プログラム801は、ステップ707において頻度405を更新された行のACL404の値を抽出し、抽出された値と、第2のユーザリスト変数に格納された値との和演算(OR演算)の結果を取得する。そして、関係DB生成プログラム801は、取得された和演算の結果を、ステップ707において頻度405を更新された行のACL404に格納する。この時、第2のユーザリスト変数にすでにACL404から抽出された値が含まれていた場合、更新された行のACL404に書き戻す処理は省略する処理手順としても良い。
 ステップ708の後、関係DB生成プログラム801は、ステップ704を実行する。
 関係DB生成プログラム801は、処理対象文書114に格納されたすべての文書に、ステップ702以降の処理が行われたとステップ701において判定した場合、図15に示す処理800を終了する。そして、辞書生成プログラム122に処理800の終了を通知する。
 図16は、本発明の第2の実施形態の類義語辞書118を生成する処理を示すフローチャートである。
 辞書生成プログラム122は、管理者によって指示されたタイミングにおいて、又は、定期的に、図16に示す処理を開始する。また、辞書生成プログラム122は、処理対象文書114に新たな文書が追加されたり、文書が更新されたり、システムがアイドル状態になったりすることをきっかけとする等のシステムイベントが発生したタイミングで、図16に示す処理を開始してもよい。
 図16に示す処理において、辞書生成プログラム122は、まず、関係DB生成プログラム801を起動し、関係DB生成プログラム801に図15に示す処理800を実行させる。
 関係DB生成プログラム801から処理800の終了を通知された場合、辞書生成プログラム122は、すべてのユーザにステップ803以降の処理が行われたか否かを判定する(802)。なお、類義語辞書システム1000は、文書共有システムを用いるすべてのユーザのユーザIDをあらかじめ保持する。そして、関係DB生成プログラム801は、類義語辞書システム1000にあらかじめ保持されたユーザIDを用いて、ステップ802における処理を行う。
 すべてのユーザにステップ803以降の処理が行われたと、ステップ802において判定した場合、辞書生成プログラム122は、図16に示す処理を終了する。
 ユーザにステップ803以降の処理が行われていないユーザがいる場合、辞書生成プログラム122は、ステップ803以降の処理が行われていないユーザのユーザIDを一つ特定する。ここで、特定されたユーザIDを、ユーザFとする。そして、辞書生成プログラム122は、関係DB119のすべての行に、ユーザFのためのステップ804が実行されたか否かを判定する(803)。関係DB119のすべての行に、ユーザFのためのステップ804が実行された場合、辞書生成プログラム122は、ステップ805を実行する。
 全文DB116の行に、ユーザFのためのステップ804を実行していない行がある場合、辞書生成プログラム122は、ステップ804を実行する。ステップ804において、辞書生成プログラム122は、ユーザFのためのステップ804を実行していない関係DB119の行から一つの行を抽出する。
 そして、抽出された行のACL404にユーザFのユーザIDが格納されている場合、辞書生成プログラム122は、抽出された行の単語1(401)、関係402、及び、単語2(403)を、ユーザFの関係学習データセット120の単語1(1201)、関係1202、及び、単語2(1203)に格納する。さらに、辞書生成プログラム122は、ステップ804において、抽出された行の頻度405の値と同じ値を、ユーザFの関係学習データセット120の頻度1204に格納する。
 ステップ803及びステップ804を繰り返し実行することによって、辞書生成プログラム122は、ユーザFの関係学習データセット120を生成する。
 関係DB119のすべての行にユーザFのためのステップ804が実行されたとステップ803において判定した場合、辞書生成プログラム122は、生成されたユーザFの関係学習データセット120を用いて、ユーザFの類義語辞書118を生成する(805)。
 辞書生成プログラム122は、ステップ805において、関係学習データセット120の頻度1204を用いて単語間の類似度を算出し、類似度の高い単語の組みを集め、ユーザFの類義語辞書118を生成する。生成される類義語辞書118は、図6に示す類義語辞書118と同じである。
 ステップ805において辞書生成プログラム122は、非特許文献1又は特許文献1に記載される技術、若しくは、形態素解析を用いて単語間の類似度を算出する等の一般的な技術を用いて、単語間の類似度を算出する。
 図16に示す処理において、辞書生成プログラム122は、関係DB119から抽出された各行の内容を関係学習データセット120に格納し、生成された関係学習データセット120に基づいて単語間の類似度を算出する。しかし、第2の実施形態の辞書生成プログラム122は、ステップ804において随時類似度を算出し、算出された類似度に基づいて類似度の高い単語の組みを集め、ステップ805において、ユーザFの類義語辞書118を生成してもよい。
 辞書生成プログラム122は、ステップ805において、単語間で算出された類似度が所定の閾値以上である場合、その単語間の類似度が高いと判定する。ここで、辞書生成プログラム122は、類似度を判定するための所定の閾値を、入出力装置103又はネットワーク装置107を介して管理者又はユーザから入力されてもよい。
 また、辞書生成プログラム122は、類似度を判定するための所定の閾値を、ステップ805において、補助記憶装置110から読み出してもよい。補助記憶装置110には、類似度を判定するための所定の閾値があらかじめ格納されていてもよい。
 前述の図16に示す処理によって、第2の実施形態の辞書生成プログラム122は、第2の実施形態の類義語辞書118を生成できる。第2の実施形態の辞書検索プログラム125は、第2の実施形態において生成された類義語辞書118を用いて類義語を検索する。
 なお、本実施形態は前述の第1の実施形態又は第2の実施形態に限定されるものではなく、様々な実施形態が含まれる。例えば、第1の実施形態の類義語辞書システム100は、第2の実施形態の類義語辞書システム1000の機能を有してもよい。
 すなわち、第1の実施形態において生成された類義語辞書118と第2の実施形態において生成された類義語辞書118とを用いて、新たな類義語辞書を生成することによって、本実施形態の類義語辞書システムは、精度が高い類義語辞書を生成することが可能である。
 具体的には、本実施形態の類義語辞書システムは、辞書生成プログラム122、全文DB生成プログラム601及び関係DB生成プログラム801を有してもよい。そして、辞書生成プログラム122は、図8に示す処理及び図16に示す処理を行ってもよい。
 この場合、辞書生成プログラム122は、ステップ605において、類義語1302に格納される類義語に算出された類似度を、各類義語に対応させて、第1の実施形態の類義語辞書118に格納する。また、辞書生成プログラム122は、ステップ805において、類義語1302に格納される類義語に算出された類似度を、各類義語に対応させて、第2の実施形態の類義語辞書118に格納する。
 そして、第1の実施形態の類義語辞書118の各類義語の類似度と、第2の実施形態の類義語辞書118の各類義語の類似度とを、乗算することによって、各類義語の新たな類似度を算出する。そして、算出された新たな類似度の大きい順に、新たな類義語辞書に類義語を格納する。
 例として、見出し語1301が"犬"を示し、類義語1302が"飼い犬"を示す行が、第1の実施形態の類義語辞書118に含まれ、第2の実施形態の類義語辞書118に含まれる場合を以下に示す。また、この場合において、第1の実施形態の類義語辞書118における"飼い犬"の類似度として、0.8が算出され、第2の実施形態の類義語辞書118において生成された類義語辞書118における"飼い犬"の類似度として、0.9が算出されているものとする。
 辞書生成プログラム122は、前述の例において、第1の実施形態の類義語辞書118における"飼い犬"の類似度(0.8)と、第2の実施形態の類義語辞書118における"飼い犬"の類似度(0.9)とを乗算し、乗算結果(0.72)を新たな類似度として取得する。そして、類義語辞書118と同じ見出し語1301及び類義語1302を含む類義語辞書を新たに生成し、取得された新たな類似度に従って、類義語1302に格納された単語の順番を変更する。
 前述の例において、辞書生成プログラム122は、単純な乗算方法によって新たな類義語辞書の類似度を算出したが、足し算など他の演算子を用いてもよい。また、辞書生成プログラム122は、第1の実施形態の類義語辞書118の類似度(変数x)及び第2の実施形態の類義語辞書118の類似度(変数y)に、所定の重み(定数a及び定数b)を各々乗算して生成した2変数関数を用いることによって、類似度(ax+by)を算出してもよい。
 第2の実施形態によれば、ユーザごとの類義語辞書118が、処理対象文書114において出現した単語の頻度に基づいて生成されるため、精度が高い類義語辞書118が生成される。
 一方で、ユーザごとの類義語辞書118には、各ユーザが閲覧できる文書に含まれる単語が格納されるため、ユーザ1によって文字列が検索された場合、ユーザ1は、ユーザ1が閲覧できない文書に含まれる単語を取得することがない。このため、類義語辞書118による情報漏えいを未然に防ぐことができる。
 さらに、第2の実施形態によれば、辞書生成プログラム122は、一つの文章に含まれる二つの単語と、二つの単語間の関係との組合せが、処理対象文書114において出現した頻度を用いて、類義語辞書118を生成する。このため、辞書生成プログラム122は、単語間の類似度を正確に算出することができ、その結果、より精度の高い類義語辞書118を生成することができる。
 (第3の実施形態)
 第1の実施形態及び第2の実施形態において生成される類義語辞書118は、ユーザごとに生成されるため、類義語辞書システム100又は類義語辞書システム1000を用いるユーザが多数である場合、類義語辞書118は膨大な量となることがある。そして、生成された類義語辞書118が、補助記憶装置110等のリソースを圧迫することとなることがある。
 このため、第3の実施形態における辞書生成プログラム122は、ユーザごとの類義語辞書118から共通の類義語を抽出し、共通類義語辞書を生成することによって、共通類義語辞書の量と類義語辞書118の量との合計の量を低減することができる。
 図17は、本発明の第3の実施形態の共通類義語辞書を生成する処理を示すフローチャートである。
 図8に示す処理又は図16に示す処理によって、辞書生成プログラム122は、すべてのユーザの類義語辞書118を生成する(1701)。
 ステップ1701の後、辞書生成プログラム122は、すべてのユーザの類義語辞書118から一人のユーザの類義語辞書118を抽出し、抽出された類義語辞書118の内容を共通類義語辞書に複写する(1702)。
 ステップ1702における共通類義語辞書は、主記憶装置102に格納されるテーブルである。また、以降において、ステップ1702において抽出される類義語辞書118に対応するユーザを、ユーザXと記載する。
 ステップ1702の後、辞書生成プログラム122は、ユーザX以外のすべてのユーザに、ステップ1704以降の処理を行ったか否かを判定する(ステップ1703)。ユーザX以外のすべてのユーザに、ステップ1704以降の処理を行った場合、辞書生成プログラム122は、ステップ1707を実行する。
 ユーザX以外のユーザに、ステップ1704以降の処理を行っていないユーザがいる場合、辞書生成プログラム122は、共通類義語辞書の類義語1302に含まれるすべての類義語にステップ1705以降の処理を行ったか否かを判定する(1705)。なお、辞書生成プログラム122は、ステップ1705において、ユーザX以外のユーザのうち、ステップ1705以降の処理を行っていないユーザを、ユーザYとして抽出する。
 共通類義語辞書に含まれるすべての類義語にステップ1705以降の処理を行った場合、辞書生成プログラム122は、ステップ1703に戻る。
 共通類義語辞書に含まれる類義語にステップ1705以降の処理を行っていない類義語がある場合、辞書生成プログラム122は、ステップ1705以降の処理を行っていない類義語とその見出し語(共通類義語辞書の見出し語1301に格納される値)との組を共通類義語辞書から抽出する。そして、辞書生成プログラム122は、抽出された類義語とその見出し語との組が、ユーザYの類義語辞書118に含まれるか否かを判定する(1705)。
 抽出された類義語とその見出し語との組が、ユーザYの類義語辞書118に含まれる場合、辞書生成プログラム122は、ステップ1704に戻る。
 抽出された類義語とその見出し語との組が、ユーザYの類義語辞書118に含まれない場合、辞書生成プログラム122は、ステップ1705において抽出された類義語を共通類義語辞書から削除する(1706)。これは、抽出された類義語がすべての類義語辞書118において共通の類義語ではないためである。
 ステップ1706の後、辞書生成プログラム122は、ステップ1704に戻る。ステップ1702~ステップ1706の処理によって、共通類義語辞書が生成される。なお、ステップ1703において、すべてのユーザにステップ1704以降の処理が実行されたと判定した場合、辞書生成プログラム122は、生成された共通類義語辞書を、補助記憶装置110に格納する。
 ユーザX以外のすべてのユーザに、ステップ1704以降の処理を行ったと、ステップ1703において判定した場合、辞書生成プログラム122は、すべてのユーザにステップ1708の処理を実行したか否かを判定する(1707)。すべてのユーザにステップ1708の処理を実行したと判定した場合、辞書生成プログラム122は、図17に示す処理を終了する。
 ユーザにステップ1708の処理が実行されていないユーザがいると、ステップ1707において判定した場合、辞書生成プログラム122は、ステップ1708の処理を実行していないユーザから一人のユーザを、ユーザZとして抽出する。そして、辞書生成プログラム122は、共通類義語辞書のすべての類義語に、ステップ1709の処理を実行したか否かを判定する(1708)。
 共通類義語辞書のすべての類義語にステップ1709の処理を実行したと、ステップ1708において判定した場合、辞書生成プログラム122は、ステップ1707に戻る。
 共通類義語辞書の類義語にステップ1709の処理を実行していない類義語があると、ステップ1708において判定した場合、辞書生成プログラム122は、ステップ1709の処理を実行していない類義語を共通類義語辞書から選択する。そして、辞書生成プログラム122は、選択された類義語と同じ類義語を、ユーザZの類義語辞書118から削除する(1709)。これによって、ユーザZの類義語辞書118から共通類義語が削除される。
 ステップ1709の後、辞書生成プログラム122は、ステップ1708に戻る。ステップ1708及びステップ1709を繰り返すことによって、ユーザZの類義語辞書118からすべての共通類義語が削除される。
 ステップ1707~ステップ1709の処理を繰り返すことによって、すべてのユーザの類義語辞書118から、共通類義語が削除される。
 共通類義語辞書が生成された後、辞書検索プログラム125がユーザ又はプログラムから検索要求を受信した場合、辞書検索プログラム125は、共通類義語辞書を検索する。
 具体的には、検索要求にはユーザID及び検索文字列が含まれるため、辞書検索プログラム125は、検索要求に含まれる検索文字列に基づいて、共通類義語辞書に格納される共通類義語を抽出する。また、辞書検索プログラム125は、検索要求に含まれるユーザIDのユーザの類義語辞書118から、検索要求に含まれる検索文字列に基づいて、類義語を抽出する。
 そして、辞書検索プログラム125は、共通類義語辞書から抽出された共通類義語と、類義語辞書118から抽出された類義語とを、検索要求を送信したユーザ又はプログラムに、類義語として送信する。
 第3の実施形態によれば、類義語辞書システム100又は類義語辞書システム1000は、すべてのユーザの類義語辞書118を保持する必要がなく、共通類義語辞書と、各ユーザ固有の類義語を含む類義語辞書118とを保持すればよい。これによって、類義語辞書システム100又は類義語辞書システム1000が有する共通類義語辞書及び類義語辞書118の量を低減することができ、補助記憶装置110等のリソースを圧迫しない。
 (第4の実施形態)
 第1の実施形態における類義語辞書システム100は、ユーザによって生成されたすべての文書において、同じ文章が出現する頻度を算出した。第4の実施形態における類義語辞書システム100は、同じ文章が出現する頻度に加え、類似する文章が出現する頻度を算出する。
 第4の実施形態における類義語辞書システム100は、図1に示す第1の実施形態における類義語辞書システム100と同じ構成を有する。
 図18は、本発明の第4の実施形態の処理対象文書114に格納される文書を示す説明図である。
 第4の実施形態の処理対象文書114には、第1の実施形態の処理対象文書114と同じく、社員Aによって生成された文書群202と社長によって生成された文書群203とが含まれる。また、文書204に含まれる文章と文書205に含まれる文章とは、一部の文章の意味が共通するが、一部の文章の意味が異なる。
 しかし、第4の実施形態の処理対象文書114において、文書205には、文書204に含まれる文章と、同じ意味であっても異なる文字列によって構成される文章が含まれる。本実施形態において、同じ意味であっても異なる文字列によって構成される文章を、類似する文章と記載する。
 文書205には文書204の文章と類似する文章が含まれる。具体的には、文書204の一文目である"以下の結果を参照してください。"と、文書205の一文目である"以下の結果を参照すること。"とは、類似する文章である。
 また、文書204の二文目である"4月の発電設備の定期検査では、異常は発見されませんでした。"と、文書205の二文目である"4月の発電設備の定期検査では、異常は発見されなかった。"とは、類似する文章である。
 また、文書204の三文目である"また、10月の臨時検査においても異常は発見されませんでした。"と、文書205の三文目である"また、10月の臨時検査でも異常は発見されなかった。"とは、類似する文章である。
 このように社長の文書205の中の文章が、社員Aの文書204の中の文章と類似する場合、社員Aの文章と類似する社長の文章は、社員Aも閲覧できる内容を示すため、社員Aの類義語辞書118を生成するための学習データとして用いられてもよい。
 このため、データ管理プログラム112は、社員Aの文章と同一の又は類似する他のユーザの文章が出現した頻度を算出し、算出された頻度に従って、類義語辞書118を生成する。これによって、データ管理プログラム112は、社員Aの類義語辞書118を生成するための学習データの量を増やすことができる。そして、データ管理プログラム112は、社員Aの類義語辞書118を精度よく生成することができる。
 以下において、第4の実施形態の全文DB116を生成する処理と、図7に示す第1の実施形態の全文DB116を生成する処理と、の相違点を示す。
 第4の実施形態の全文DB生成プログラム601は、図7に示すステップ501~ステップ503と同じ処理を実行する。なお、第4の実施形態における全文DB生成プログラム601は、第1の実施形態と同じく、ステップ501において処理対象文書114から文書Aを取得し、ステップ502において文書Aから文章Bを取得する。
 第4の実施形態のステップ504において、全文DB生成プログラム601は、文章Bと類似する文章が、全文DB116の各行の文章301に含まれる場合、文章Bが文章301に格納されていると判定する。文章Bと類似する文章が文章301に含まれるか否かを判定する方法の例を以下に示す。
 具体的には、全文DB生成プログラム601は、文法に基づく規則等をあらかじめ保持することによって、文章Bを正規化する。そして、全文DB生成プログラム601は、全文DB116の各行のうち、正規化された文章Bの文字列と、文章301の文字列と一致する行がある場合、文章Bと類似する文章が文章301に含まれると判定する。
 なお、第4の実施形態の全文DB116の文章301には、既に正規化された文章が格納される。
 例えば、全文DB生成プログラム601は、敬体の文章("です。"、又は、"ます。"などを含む文章)と常体の文章("である。"などを含む文章)との規則を保持する。そして、図2に示す文書204の二文目の"4月の発電設備の定期検査では、異常は発見されませんでした。"の文章が文章Bである場合、全文DB生成プログラム601は、保持された規則に従って、文章Bを"4月の発電設備の定期検査では、異常は発見されなかった。"と正規化する。
 そして、ステップ504において、全文DB116の文章301に図2に示す文書205の二文目である"4月の発電設備の定期検査では、異常は発見されなかった。"が格納されている場合、全文DB生成プログラム601は、正規化された文章Bが文章301に格納されていると判定する。
 また、例えば、全文DB生成プログラム601は、丁寧な依頼の文章("してください。"などを含む文章)と、命令文("すること。"などを含む文章)との規則を保持してもよい。そして、図2に示す文書204の一文目の"以下の結果を参照してください。"の文章が文章Bである場合、全文DB生成プログラム601は、文章Bを"以下の結果を参照すること。"と正規化してもよい。
 そして、ステップ504において、文章301に図2に示す文書205の一文目である"以下の結果を参照すること。"が格納されている場合、全文DB生成プログラム601は、正規化された文章Bが文章301に格納されていると判定してもよい。
 また、全文DB生成プログラム601は、ステップ504において、文章B及び文章301に格納された文章を、句読点、中点("・")、長音符("-")、アンダーバー、括弧、及び、かぎ括弧等の記号を省略した文章に正規化してもよい。そして、正規化された文章Bと文章301に格納された文章とが一致する場合、文章Bが文章301に格納されていると判定してもよい。
 このように、文章Bを正規化した後、一致する文章が文章301に含まれるか否かを判定することによって、全文DB生成プログラム601は、同一の文章または類似する文章が処理対象文書114に出現する頻度を正確に算出することができる。そして、これによって、辞書生成プログラム122が、後述する処理によって精度の高い類義語辞書118を生成できる。
 正規化された文章Bが全文DB116の文章301に格納されていないと、ステップ504において判定した場合、全文DB生成プログラム601は、図7に示すステップ505と同じ処理を実行する。
 ステップ505の後、第4の実施形態の全文DB生成プログラム601は、正規化された文章Bを、新しい行の文章301に格納する(506)。
 そして、ステップ506、または、正規化された文章Bが全文DB116の文章301に格納されているとステップ504において判定された場合、第4の実施形態における全文DB生成プログラム601は、図7に示すステップ507、および、ステップ508と同じ処理を行う。
 前述の処理によって、第4の実施形態における全文DB116が生成される。第4の実施形態の全文DB生成プログラム601は、前述の方法を用いることによって、同一の文章または類似の文章が文書において出現した頻度を算出することができる。
 そして、辞書生成プログラム122は、第4の実施形態の全文DB116に、図8に示す処理を行うことによって、第1の実施形態と同じく各ユーザの類義語辞書118を生成できる。
 第4の実施形態によれば、辞書生成プログラム122は、意味が同じであり、かつ、文法の形式のみが異なるような類似の文章、又は、同一の文章が出現した頻度を用いて、類義語辞書118を生成する。このため、辞書生成プログラム122は、意味が同じである文章が出現した頻度を正確に算出することができ、その結果、より精度の高い類義語辞書118を生成することができる。
 本実施形態によれば、ユーザごとの類義語辞書118が、処理対象文書114において出現した単語の頻度に基づいて生成されるため、精度が高い類義語辞書118が生成される。
 一方で、ユーザごとの類義語辞書118には、各ユーザが閲覧できる文書に含まれる単語が格納されるため、ユーザが自らの類義語辞書118を用いて文字列を検索しても、ユーザは、ユーザが閲覧できない文書に含まれる単語を取得することができない。このため、類義語辞書118による情報漏えいを未然に防ぐことができる。
 以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
 検索文字列を入力することによって、コンテンツを取得する計算機システムに利用可能である。

Claims (14)

  1.  複数のユーザによって生成された複数の文書が入力される文書処理システムであって、
     前記文書処理システムは、プロセッサ及びメモリを備え、
     前記メモリは、
     前記入力された複数の文書と、
     前記各文書を閲覧可能なユーザを示すアクセスリストとを、保持し、
     前記文書処理システムは、
     前記複数の文書から、所定の基準に従った複数の文字列を抽出し、
     前記メモリに保持される複数の文書の各々の中に、前記抽出された各文字列が示す情報が出現する頻度を算出し、
     前記各ユーザが閲覧できる各文書から抽出された各文字列と、前記抽出された各文字列が示す情報が出現する頻度と、が含まれる前記各ユーザの学習データセットを生成し、
     前記生成された各ユーザの学習データセットに基づいて、前記各ユーザの類義語辞書を生成することを特徴とする文書処理システム。
  2.  前記各文書は、句点によって区切られた複数の文章を含み、
     前記文書処理システムは、
     前記各文書から、前記所定の基準に従った前記複数の文字列として、前記複数の文章を抽出することを特徴とする請求項1に記載の文書処理システム。
  3.  前記文書処理システムは、前記複数の文書の各々の中に、同じ前記文字列によって構成される前記文章が出現する頻度を求めることによって、前記抽出された各文字列が示す情報が出現する頻度を算出することを特徴とする請求項2に記載の文書処理システム。
  4.  前記メモリは、文法に関する所定の規則を保持し、
     前記文書処理システムは、
     前記抽出された複数の文章を、前記所定の規則を用いて正規化し、
     前記メモリに保持される複数の文書の各々の中に、前記正規化された各文章が出現する頻度を算出することによって、前記メモリに保持される複数の文書の各々の中に、前記抽出された各文字列が示す情報が出現する頻度を算出することを特徴とする請求項2に記載の文書処理システム。
  5.  前記文書処理システムは、
     前記抽出された各文字列と、前記各文字列が抽出された文書を閲覧可能な少なくとも一人のユーザと、前記抽出された各文字列が示す情報が出現する頻度と、が含まれる全文情報を、前記アクセスリストに基づいて生成し、
     前記生成された全文情報に基づいて、前記各学習データセットを生成することを特徴とする請求項1に記載の文書処理システム。
  6.  前記複数の文書は、句点によって区切られた複数の文章と、前記文章に含まれる複数の単語とを含み、
     前記文書処理システムは、
     前記複数の文書から、前記所定の基準に従った複数の文字列として、前記各文章に含まれる二つの前記単語の複数の組を抽出し、
     前記抽出された複数の組に含まれる二つの単語の各文章における関係を特定し、
     前記抽出された二つの単語の各組と、前記抽出された複数の組に含まれる二つの単語の各文章における関係とが、前記メモリに保持される複数の文書において出現する頻度を算出することによって、前記メモリに保持される複数の文書において、前記抽出された各文字列が示す情報が出現する頻度を算出することを特徴とする請求項1に記載の文書処理システム。
  7.  前記生成された各ユーザの類義語辞書は、複数の単語を含み、
     前記文書処理システムは、
     すべての前記ユーザの類義語辞書に含まれる前記単語を、共通単語として抽出し、
     前記共通単語を含む、共通辞書を生成し、
     前記各ユーザの類義語辞書から、前記共通単語を削除し、
     前記第1のユーザによって検索文字列が入力された場合、前記文書処理システムは、前記共通辞書、及び、前記第1のユーザの類義語辞書から、前記入力された検索文字列に類似する文字列を検索することを特徴とする請求項1に記載の文書処理システム。
  8.  複数のユーザによって生成された複数の文書が入力される文書処理システムによる文書処理方法であって、
     前記文書処理システムは、プロセッサ及びメモリを備え、
     前記メモリは、
     前記入力された複数の文書と、
     前記各文書を閲覧可能なユーザを示すアクセスリストとを、保持し、
     前記方法は、
     前記プロセッサが、前記複数の文書から、所定の基準に従った複数の文字列を抽出し、
     前記プロセッサが、前記メモリに保持される複数の文書の各々の中に、前記抽出された各文字列が示す情報が出現する頻度を算出し、
     前記プロセッサが、前記各ユーザが閲覧できる各文書から抽出された各文字列と、前記抽出された各文字列が示す情報が出現する頻度と、が含まれる前記各ユーザの学習データセットを生成し、
     前記プロセッサが、前記生成された各ユーザの学習データセットに基づいて、前記各ユーザの類義語辞書を生成することを特徴とする文書処理方法。
  9.  前記各文書は、句点によって区切られた複数の文章を含み、
     前記方法は、
     前記プロセッサが、前記各文書から、前記所定の基準に従った前記複数の文字列として、前記複数の文章を抽出することを特徴とする請求項8に記載の文書処理方法。
  10.  前記方法は、前記プロセッサが、前記複数の文書の各々の中に、同じ前記文字列によって構成される前記文章が出現する頻度を求めることによって、前記抽出された各文字列が示す情報が出現する頻度を算出することを特徴とする請求項9に記載の文書処理方法。
  11.  前記メモリは、文法に関する所定の規則を保持し、
     前記方法は、
     前記プロセッサが、前記抽出された複数の文章を、前記所定の規則を用いて正規化し、
     前記プロセッサが、前記メモリに保持される複数の文書の各々の中に、前記正規化された各文章が出現する頻度を算出することによって、前記メモリに保持される複数の文書の各々の中に、前記抽出された各文字列が示す情報が出現する頻度を算出することを特徴とする請求項9に記載の文書処理方法。
  12.  前記方法は、
     前記プロセッサが、前記抽出された各文字列と、前記各文字列が抽出された文書を閲覧可能な少なくとも一人のユーザと、前記抽出された各文字列が示す情報が出現する頻度と、が含まれる全文情報を、前記アクセスリストに基づいて生成し、
     前記プロセッサが、前記生成された全文情報に基づいて、前記各学習データセットを生成することを特徴とする請求項8に記載の文書処理方法。
  13.  前記複数の文書は、句点によって区切られた複数の文章と、前記文章に含まれる複数の単語とを含み、
     前記方法は、
     前記プロセッサが、前記複数の文書から、前記所定の基準に従った複数の文字列として、前記各文章に含まれる二つの前記単語の複数の組を抽出し、
     前記プロセッサが、前記抽出された複数の組に含まれる二つの単語の各文章における関係を特定し、
     前記プロセッサが、前記抽出された二つの単語の各組と、前記抽出された複数の組に含まれる二つの単語の各文章における関係とが、前記メモリに保持される複数の文書において出現する頻度を算出することによって、前記メモリに保持される複数の文書において、前記抽出された各文字列が示す情報が出現する頻度を算出することを特徴とする請求項8に記載の文書処理方法。
  14.  前記生成された各ユーザの類義語辞書は、複数の単語を含み、
     前記方法は、
     前記プロセッサが、前記複数のユーザの類義語辞書に含まれる前記単語を、共通単語として抽出し、
     前記プロセッサが、前記共通単語を含む、共通辞書を生成し、
     前記プロセッサが、前記各ユーザの類義語辞書から、前記共通単語を削除し、
     前記第1のユーザによって検索文字列が入力された場合、前記プロセッサが、前記共通辞書、及び、前記第1のユーザの類義語辞書から、前記入力された検索文字列に類似する文字列を検索することを特徴とする請求項8に記載の文書処理方法。
PCT/JP2012/059345 2012-04-05 2012-04-05 文書処理システム、及び、文書処理方法 WO2013150633A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/059345 WO2013150633A1 (ja) 2012-04-05 2012-04-05 文書処理システム、及び、文書処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/059345 WO2013150633A1 (ja) 2012-04-05 2012-04-05 文書処理システム、及び、文書処理方法

Publications (1)

Publication Number Publication Date
WO2013150633A1 true WO2013150633A1 (ja) 2013-10-10

Family

ID=49300155

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/059345 WO2013150633A1 (ja) 2012-04-05 2012-04-05 文書処理システム、及び、文書処理方法

Country Status (1)

Country Link
WO (1) WO2013150633A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015125584A (ja) * 2013-12-26 2015-07-06 Kddi株式会社 マイニング分析装置、方法及びプログラム
CN108108398A (zh) * 2017-12-04 2018-06-01 福建中金在线信息科技有限公司 一种浏览量显示方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250762A (ja) * 2004-03-03 2005-09-15 Mitsubishi Electric Corp 辞書生成装置、辞書生成方法および辞書生成プログラム
JP2009129323A (ja) * 2007-11-27 2009-06-11 Hitachi Ltd 同義語抽出装置
JP2010224915A (ja) * 2009-03-24 2010-10-07 Fuji Xerox Co Ltd 情報処理装置及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005250762A (ja) * 2004-03-03 2005-09-15 Mitsubishi Electric Corp 辞書生成装置、辞書生成方法および辞書生成プログラム
JP2009129323A (ja) * 2007-11-27 2009-06-11 Hitachi Ltd 同義語抽出装置
JP2010224915A (ja) * 2009-03-24 2010-10-07 Fuji Xerox Co Ltd 情報処理装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015125584A (ja) * 2013-12-26 2015-07-06 Kddi株式会社 マイニング分析装置、方法及びプログラム
CN108108398A (zh) * 2017-12-04 2018-06-01 福建中金在线信息科技有限公司 一种浏览量显示方法和装置

Similar Documents

Publication Publication Date Title
US10963794B2 (en) Concept analysis operations utilizing accelerators
US9558264B2 (en) Identifying and displaying relationships between candidate answers
WO2019091026A1 (zh) 知识库文档快速检索方法、应用服务器及计算机可读存储介质
US9286290B2 (en) Producing insight information from tables using natural language processing
US10339453B2 (en) Automatically generating test/training questions and answers through pattern based analysis and natural language processing techniques on the given corpus for quick domain adaptation
US9318027B2 (en) Caching natural language questions and results in a question and answer system
US10078632B2 (en) Collecting training data using anomaly detection
US9697099B2 (en) Real-time or frequent ingestion by running pipeline in order of effectiveness
US20100262610A1 (en) Identifying Subject Matter Experts
US10303689B2 (en) Answering natural language table queries through semantic table representation
US9342561B2 (en) Creating and using titles in untitled documents to answer questions
JPWO2007119567A1 (ja) 文書処理装置および文書処理方法
US10242002B2 (en) Phenomenological semantic distance from latent dirichlet allocations (LDA) classification
US20190294623A1 (en) Clustering a set of natural language queries based on significant events
US10229184B2 (en) Phenomenological semantic distance from latent dirichlet allocations (LDA) classification
Zhang et al. A topic clustering approach to finding similar questions from large question and answer archives
Brochier et al. Impact of the query set on the evaluation of expert finding systems
US11048697B2 (en) Determining the significance of an event in the context of a natural language query
Jeon et al. Making a graph database from unstructured text
Mahmoud et al. Using twitter to monitor political sentiment for Arabic slang
WO2013150633A1 (ja) 文書処理システム、及び、文書処理方法
JP2013222418A (ja) パッセージ分割方法、装置、及びプログラム
TW201822031A (zh) 以文字資訊建立圖表索引方法及其電腦程式產品
US20180349358A1 (en) Non-transitory computer-readable storage medium, information processing device, and information generation method
US20240020476A1 (en) Determining linked spam content

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: 12873630

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12873630

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP