WO2020079109A1 - Device for automatically processing text by computer - Google Patents

Device for automatically processing text by computer Download PDF

Info

Publication number
WO2020079109A1
WO2020079109A1 PCT/EP2019/078140 EP2019078140W WO2020079109A1 WO 2020079109 A1 WO2020079109 A1 WO 2020079109A1 EP 2019078140 W EP2019078140 W EP 2019078140W WO 2020079109 A1 WO2020079109 A1 WO 2020079109A1
Authority
WO
WIPO (PCT)
Prior art keywords
transient
structural
concept
lexical
list
Prior art date
Application number
PCT/EP2019/078140
Other languages
French (fr)
Inventor
Amboise CADE
Henri FAUCHER DE CORN
Original Assignee
Meremind
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 Meremind filed Critical Meremind
Publication of WO2020079109A1 publication Critical patent/WO2020079109A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition

Definitions

  • the invention relates to the field of automatic processing of a text by computer, and more particularly to the field of natural language processing, or NLP (Natural Language Processing in English).
  • NLP Natural Language Processing in English
  • Natural language processing has two main branches: linguistic methods and automatic training methods.
  • the methods of the first branch are based on the theorization of languages from Chomsky's theories.
  • this branch has only been the subject of largely manual and complex heuristic-based implementations and has never known a computer application giving satisfactory results for a general application.
  • automatic training is based on the determination by a machine of a statistical model determined on the basis of training, the parameters of which are fixed by the person who schedules the training, and on the basis of a training game.
  • the inference model which is used to make the predictions on the input data which one wishes to process, without the designer being able to see it other than as a black box.
  • these methods are mainly based on vectorization of words, with Bag-of-words type models, or Word2Vec, and the treatment of these vectors as a problem of automatic training.
  • These models are also based on a syntactic analysis sequence followed by a semantic analysis. Thus, the sentences are first cut syntactically, then a meaning is placed on the result.
  • the invention improves the situation.
  • the invention provides an automatic text processing device by computer, comprising a memory arranged to receive text data to be analyzed in the form of tokens each comprising a character string and a unique token identifier, a base concept data associating character strings and concept identifiers, at least some of the concept identifiers being associated with each other, model lexical construction data and model structural construction data, each comprising one or more application conditions to a characteristic and one or more conclusions constituting elements to be applied to a characteristic, and an observation database associating at least two concept identifiers, a type of relation and an observation value indicating a probability of veracity of the type of relationship between the at least two concept identifiers, the dis positive being arranged to work so repetitive on a transient comprising lexical characteristics and structural characteristics produced by applying model lexical constructions and model structural constructions, the transient being initialized with lexical characteristics comprising for each token a concept identifier whose frequency is the most important in the concept database and
  • This device also includes:
  • a rectifier arranged to determine for each lexical characteristic of a transient a list of concept identifiers associated with the concept identifier of this lexical characteristic, to determine a set of observations corresponding to the concept identifiers of the lists thus determined, and to apply a non-monotonic probabilistic logical inference engine to determine the concept identifier of each list such that the observation values associated with these concept identifiers minimize a defined cost function by applying a multivalued logic operator to a or several rules drawn from the content of the characteristics of the transient and instantiated with corresponding observation values, and to replace the concept identifiers of the lexical characteristics of the transient with the concept identifiers thus determined,
  • a pairer arranged to determine among the model structural constructions those whose condition (s) apply to one or more of the characteristics of the transient, and to return the list of structural constructions with the characteristic (s) to which their conditions apply, the device being further arranged to classify the structural constructions associated with each characteristic by frequency of use, the first structural construction to be applied to the transient and the others forming a list of options, and
  • a combiner arranged to execute sequentially the selection of a structural construction to be applied to the transient, the storage of a copy of the transient with the list of options associated with the structural construction, and the application of the structural construction to be applied to the transient to the characteristic or characteristics of the transient to which this structural construction has been associated by the pairer, and to repeat this sequential execution on the transient thus modified with the structural construction to be applied to the next transient.
  • This device is also arranged to determine, after the execution of the combinator, if the characteristics of the transient product define a tree of which all the nodes are linked together and devoid of cycle, to return this tree if this is the case, and to repeat the execution of the rectifier, the pairer and the combiner on the last transient produced otherwise, and is also arranged, when the pairer does not return any structural construction to be applied to the transient, to replace the current transient with the copy of the most recent transient, and to execute the combinator with the first construction from the list of options as a structural construction to be applied to the transient.
  • This device is particularly advantageous because it makes it possible to solve the problems described above. Indeed, it is entirely based on the application of an algorithm whose rules are linked to linguistics.
  • the device may have one or more of the following characteristics:
  • the non-monotonic probabilistic logic inference engine includes an optimizer using the algorithm of multipliers with alternating directions
  • the device further comprises a filter arranged to determine, for each structural construction to be applied and the list of options associated with a set of rules, to determine a set of observations from the set of rules and the identifier (s) of concept associated with the characteristic to which the structural construction to be applied must be applied, and to apply the non-monotonic probabilistic logical inference engine with the rule set and the observation game in order to determine the structural construction to be applied to the transient and the list of options,
  • the rectifier defines frequency rules from lexical characteristics of the transient, neighborhood rules from concept identifiers of the lexical characteristics of the transient and the concept identifiers associated with them in the concept database at a chosen distance , and structural rules drawn from attributes semantics of non-lexical characteristics of the transient linking two lexical characteristics,
  • the combiner is arranged to store only the copy of the transient with the list of options associated with the structural construction, and in that, when the pairer does not return any structural construction to be applied to the transient, to replace the current transient with the copy of the most recent transient, and to execute the combiner with the first construction from the list of options as a structural construction to be applied to the transient, then repeating the application of the rectifier, the pairer and the combinator with the resulting transient,
  • the combiner is arranged to store the remaining structural constructions to be applied to the transient at the same time as the copy of the transient with the list of options associated with the structural construction, and in that when the matcher does not return any structural construction to apply to the transient, to replace the current transient with the most recent copy of the transient, and to execute the combiner with the first construction from the list of options as a structural construction to apply to the transient as well as the remaining structural constructions, then by repeating the application of the rectifier, the pairer and the combiner with the resulting transient,
  • the device is arranged to analyze the returned tree and to produce a semantic graph whose nodes are formed by the lexical characteristics and their concept identifier, and therefore the links are defined by the semantic attributes of non-lexical characteristics linking them two lexical characteristics, and
  • the inference engine is arranged to apply a multivalued logic operator chosen from the group comprising the Lukasiewicz t-norm, the minimum t-norm and the Harnacher product.
  • the invention also relates to an automatic word processing method implemented by computer, comprising the following operations:
  • a) receive text data to be analyzed in the form of tokens each comprising a character string and a unique token identifier, a concept database associating character strings and concept identifiers, at least some of the identifiers of concept being associated with each other, construction data model lexicals and model structural construction data, each comprising one or more conditions of application to a characteristic and one or more conclusions constituting elements to be applied to a characteristic, and a database of observations associating at least two identifiers of concept, a type of relation and an observation value indicating a probability of veracity of the type of relation between the at least two concept identifiers,
  • a transient which may include lexical characteristics and structural characteristics produced by applying model lexical constructions and model structural constructions, with lexical characteristics comprising for each token a concept identifier whose frequency is the most important in the database concept data and which is associated with the character string of the token, c) work repetitively on the transient by repeating the following successive operations:
  • cl determine for each lexical characteristic of a transient a list of concept identifiers associated with the concept identifier of this lexical characteristic, to determine a set of observations corresponding to the concept identifiers of the lists thus determined, and to apply a non-monotonic probabilistic logical inference engine for determining the concept identifier of each list such that the observation values associated with these concept identifiers minimize a defined cost function by applying a multivalued logic operator to one or more rules taken from the content of the characteristics of the transient and instantiated with corresponding observation values, and to replace the concept identifiers of the lexical characteristics of the transient with the concept identifiers thus determined,
  • c2 determine among the model structural constructions those whose condition (s) apply to one or more of the characteristics of the transient, and to return the list of structural constructions with the characteristic (s) to which their conditions apply,
  • c3) classify the structural constructions associated with each characteristic by frequency of use, the first structural construction to be applied to the transient and the others forming a list of options
  • c4) execute sequentially the selection of a structural construction to be applied to the transient, the storage of a copy of the transient with the list of options associated with the structural construction, and the application of the structural construction to be applied to the transient to the characteristic or characteristics of the transient to which this structural construction has been associated by the matcher, and to repeat this sequential execution on the transient thus modified with the structural construction to be applied to the following transient,
  • operation c2) if operation c2) does not return any structural construction to be applied to the transient, replace the current transient with the most recent copy of the transient, execute operation c5) with the first construction in the list of options as structural construction to be applied to the transient.
  • the process may have one or more of the following characteristics:
  • the application of the non-monotonic probabilistic logical inference engine includes the application of an optimizer using the algorithm of multipliers with alternating directions,
  • the method further comprises, between operation c3) and operation c4):
  • - operation c1) includes the definition of frequency rules from lexical characteristics of the transient, neighborhood rules from the concept identifiers of the lexical characteristics of the transient and the concept identifiers associated with them in the concept database at a chosen distance, and from structural rules drawn from semantic attributes of non-lexical characteristics of the transient linking two lexical characteristics,
  • operation c4) store only the copy of the transient with the list of options associated with the structural construction, and in which, after the execution of operation cl), operations cl) to c7) are repeated on the current transient,
  • operation c4) stores the remaining structural constructions to be applied to the transient at the same time as the copy of the transient with the list of options associated with the structural construction, and in which, after the execution of operation cl) , operation c5) is applied with the remaining structural constructions, then by repeating the application of the rectifier, then, operations cl) to cl) are repeated on the current transient, and
  • the method further comprises the following operation:
  • FIG. 1 shows a schematic view of a device according to the invention
  • FIGS. 8 to 17 represent representations of processing steps of the function of FIG. 2 on a simplified example
  • FIG. 18 shows a tree returned by the device according to the invention.
  • FIG. 19 represents a semantic graph drawn from the tree of FIG. 18.
  • the drawings and the description below essentially contain elements of a certain nature. They can therefore not only serve to better understand the present invention, but also contribute to its definition, if necessary.
  • FIG. 1 represents a schematic view of a device according to the invention.
  • the device 2 comprises a memory 4, a rectifier 6, a pairer 8, a filter 10, a combiner 12 and a validator 14.
  • the memory 4 can be any type of data storage suitable for receiving digital data: hard disk, hard disk with flash memory (S SD in English), flash memory in any form, random access memory, magnetic disk, locally or cloud distributed storage, etc.
  • the data calculated by the device can be stored on any type of memory similar to memory 4, or thereon. This data can be deleted after the device has completed its tasks or stored.
  • the memory 4 receives permanent data which is used to implement the device 2 and can be enriched as it is executed. In the example described here, the memory 4 also receives temporary data or work data, which are generated for the needs of a given execution of the device 2, and which are not kept after this execution.
  • the permanent data and the working data can be stored on the same memory 4 or on separate memories.
  • the permanent data includes a semantic concept database based at least in part on the Wordnet database (see https://wordnet.princeton.edu/) for the English language (other databases may be used for other languages).
  • the permanent data also contains, and is not exhaustive, the following data, which will be defined in detail below:
  • an observation database which are quadruplets associating a type of relation, two concept identifiers, and an observation value between 0 and 1 (0 signifying that the type of relation suggested is false, 1 that it is true, and the other values a probability that it is true or false).
  • Est_Un A, B
  • the value of the observation of Est_Un would be 1
  • the value of the observation of Est_Un would be 0
  • that of Est_Un Edstein, genius
  • This database of observations can be completed from the content of the concept database to deduce logical relationships between concepts. Observations could link more than two concept identifiers. However, this type of relationship can be reformulated by a set of several observations linking the concept identifiers two by two.
  • the rectifier 6, the pairer 8, the filter 10, the combiner 12 and the validator 14 are elements directly or indirectly accessing memory 4. They can be produced in the form of a appropriate computer code executed on one or more processors.
  • processors it must be understood any processor adapted to the calculations described below.
  • Such a processor can be produced in any known manner, in the form of a microprocessor for personal computer, of a dedicated chip of FPGA or SoC type (“System on chip” in English), of a computing resource on a grid, a microcontroller, or any other form capable of providing the computing power necessary for the embodiment described below.
  • One or more of these elements can also be produced in the form of specialized electronic circuits such as an ASIC.
  • a combination of processor and electronic circuits can also be envisaged.
  • FIG. 2 represents an example of the implementation of an automatic word processing function by the device in FIG. 1.
  • Figure 2 The role of the function in Figure 2 is fundamental. Indeed, it is a loop which calls the rectifier 6, the pairer 8, the filter 10, the combiner 12 and the validator 14 in order to gradually create a semantic graph which represents the meaning of the sentence received as input.
  • the device 2 offers with this function a fundamental brick in NLP because it is almost devoid of heuristics, and therefore offers a repeatable solution to create a language underlay which allows machines to access understanding semantics of texts.
  • Device 2 finds a particularly effective application in the fields of "Question answering" (Answer to questions). Indeed, it allows first to analyze a text to establish its semantics, then to analyze a question in the same way to bring it closer to this semantics and provide the answer. More generally, the device 2 is based on an existing database of semantic concepts, but is capable of enriching it by virtue of its operation, unlike the methods based on automatic training.
  • the function in Figure 2 begins with an operation 200 with an Init () function.
  • An example of implementation of the Init () function is explained with FIG. 3.
  • the role of the Init () function is to initialize the loop of FIG. 2, and in particular to initialize the main object which is modified. by the loops in order to obtain the semantic graph which is the result.
  • This object is here called “transient”, because it is called to evolve many times, very quickly, in order to generate the semantic graph.
  • a transient is made up of characteristics.
  • Each characteristic can relate either to a particular token, in which case it is called a lexical characteristic, or to a relationship between two lexical characteristics, in which case it is called a structural characteristic.
  • a structural characteristic can itself relate to the relationship between other structural characteristics, which makes it possible to create complex semantic meanings.
  • Characteristics whether lexical or structural, are the result of the application of linguistic objects called constructions. These objects, well known in the field of linguistic analysis, have never found an effective computer application until today.
  • the constructions are based on a couple of condition (s) / conclusion (s).
  • a construction is an object which behaves as follows: if lexical or structural characteristics meet the condition (s), then we will apply the conclusion (s) of the construction to them.
  • the semantic graph will thus be constructed step by step, starting from the words and assigning them the meaning they have in the sentence, then by grouping them in nominal groups, verbal groups, then nominal and verbal sentences, etc., until the sentence is fully defined.
  • the function of Figure 2 is particularly powerful because it nevertheless allows to reevaluate during its execution the meaning associated with a word and to propagate the consequence of this change throughout the semantic graph.
  • Borders which uses predicates of the same name to define the bounds of a group of elements
  • LexicalCategory which defines a lexical category (for example, noun, verb, common noun, proper noun, adverb, article, adjective, etc.,
  • ClasseLexicale which defines a lexical class (for example, transitive verb, intransitive verb, auxiliary, determinant, etc.),
  • CategoryPhrasale which defines groups of words between them (for example nominal sentence, verbal sentence, etc.), and
  • ClausalCategory which defines a category of clause and allows groups of words to be grouped together, for example nominal sentences, verbal sentences, etc.
  • Conditions and conclusions can have many other fields, such as Form (relative to an attribute form), String (a character string), Precede (a predicate linking two elements), Suit (a predicate linking two elements), Query (indicates that a group of elements includes a verb, a pronoun or an interrogative adverb), Preposition, TypeDePhrase (for example, nominal sentence, etc.), Number, Date, Person, ValenceSemantique (for example, actor and sound element identifier, etc.), Syntactic Valence (for example, subject or object and its element identifier), SyntacticFunction (for example adjective, auxiliary, verb, etc.), Time, Voice (active or passive), PassiveForm ( yes or no), etc.
  • Form relative to an attribute form
  • String a character string
  • Precede a predicate linking two elements
  • Suit a predicate linking two elements
  • Query indicates that a group of elements includes a verb, a pronoun or an interrogative
  • the Init () function begins with an operation 300 in which an array Tk [] is initialized by a Lex () function.
  • the Lex () function performs the lexical analysis of a sentence received as input by device 2, and provides an array Tk [] in which the sentence is cut into standardized tokens.
  • the Tk [] array stores for each token the corresponding character string and a unique identifier for this token in the sentence. This result is also stored in a table Tst_Stack [] which will be described below.
  • the Lex () function implements a lexical analyzer to produce a sequence of standardized tokens.
  • the notion of standardization refers to the fact that certain words can be written in several forms (for example contractions in English), or that certain characters must be deleted or grouped.
  • the lexical analyzer performs one or more of the following functions:
  • the lexical analyzer is not the subject of the invention and a person skilled in the art knows several solutions in the state of the art for implementing it.
  • form predicates are initialized by an SFP () function which receives the table Tk [] as a variable.
  • the SFP () function takes the table Tk [] and will produce predicates relative to the positions of the tokens relative to each other.
  • the SFP () function creates a predicate of type Attached ([balloon], [red]) and a predicate of type Precede ([balloon], [red]).
  • These predicates therefore indicate that the token [balloon] is attached to the token [red] and that it precedes it directly.
  • the Predicate () predicate is generated for all tokens downstream of an upstream token.
  • the SFP () function is designed to also generate Borders () predicates, which indicate start and end indices of a chain of several tokens.
  • the set of predicates thus produced is stored in memory 4, and is accessed to determine the application of conditions, as described below.
  • a loop is then launched to analyze each lexical characteristic of the transient in order to initialize the concept identifiers.
  • the transient Tst is unstacked, and in an operation 330, a Find () function determines, for the current token, the syntax identifier of the database of concepts of memory 4 which has the most important frequency, and stores it in an Ltk array [] For example, if the token is "red”, the Find () function will return the syntax identifier associated with the adjective "red” rather than that associated with the color "Red” because the word is used more often as an adjective than as a noun.
  • the Find () function assigns the most frequent concept identifier among the concept identifiers associated with this syntactic identifier.
  • the other syntactic identifiers are stored as options in an OC table [] These options will be stored in the Tst_Stack [] table in an operation 350 described below.
  • the Ltk [] array is supplied as an argument to a LexConstr () function in an operation 340.
  • the LexConstr () function returns a list of lexical constructions Cstr [] which will initialize the characteristics lexicals of the transient.
  • a Merge () function receives the list of lexical constructs Cstr [] from operation 340 and the transient Tst, and combines them.
  • the combination is guaranteed, that is to say that the condition of each lexical construction of the list Cstr [] is necessarily fulfilled by a characteristic of the transient Tst, since they were chosen specifically for this.
  • optional lexical features are generated and stored in a Tst_Stack [] array. These options can be explored when a problem is identified. This is notably ensured by a function Bck () in an operation 290. This will be described in more detail with the description of the combiner 12 in relation to FIG. 7.
  • the transient Tst is therefore initialized with the lexical characteristics corresponding to each token, with the unique token identifier and the concept identifier which has been determined to be the most likely.
  • the predicates of type Attached () and Preceded () are also stored for the rest, and the function ends in an operation 399.
  • the loop of Figure 2 begins with an operation 205 in which a Max () function determines whether an output condition related to an excessive number of loop executions is fulfilled. This avoids getting stuck in a too long calculation loop (for example beyond 1000 iterations). When this condition is met, the function of Figure 2 ends in operation 299 with an error. Alternatively, operation 205 can be omitted.
  • This loop begins in operation 210 with the execution of a Sem () function.
  • the function Sem () is in the example described here implemented by the rectifier 6, and FIG. 4 gives an exemplary embodiment.
  • the goal pursued by the Sem () function is to analyze the current transient, which has just been enriched by the previous loop, and to see if it would not be appropriate to change one or several of the concept identifiers of the lexical characteristics taking into account the structural characteristics of the transient.
  • the Sem () function "shakes" the bag of concept identifiers available for each lexical characteristic, in order to determine if there is not a new concept which would give more meaning to the sentence described by the. transient at this stage, from a semantic point of view.
  • the rectifier 6 creates a Concept table [] which collects all the concept identifiers of the lexical characteristics of the current transient Tst.
  • an Extrap () function determines for each of these concept identifiers the list of concept identifiers which are linked to it in the concept database and stores each list in an entry in a Candid table [ ] Based on the Candid [] array, an Observ () function collects all observations related to each of the concepts in each list in the Candid [] array and groups them into an Obs [] array in an operation 420.
  • an Infer () function uses the Candid [] table and the Obs [] table to modify the current transient, and the function ends with an operation 499.
  • the function Infer () uses a non-monotonic probabilistic logical inference engine which calculates a multitude of cost functions as a function of the observations of the table Obs [] for each combination of a concept identifier by list of the table Candid []
  • the combination of lists creates a combinatorial of concept identifiers, and the observations associated with each concept identifier are used to calculate a cost function from them.
  • the cost function is performed by determining a plurality of rules from the transient. Then, these rules are evaluated on the basis of observations by applying a multivalued logic operator which allows to linearize the problem. In the preferred version of the invention, it is the Lukasiewicz t-standard. Alternatively, the operator could be the minimum t-standard or the Harnacher product.
  • the second category of rules includes so-called neighborhood rules, which are based on the links between the concept identifiers of the lexical characteristics in the concept database.
  • the concept database is explored from each group of concept identifiers, and searches for “neighboring” concept identifiers in the other groups of concept identifiers, at a chosen distance. For example, if a first group contains the concept "Fred”, and a second contains the concept "hold” (hold in English), then these concepts are at a distance of two concepts in the database of concepts.
  • “Fred” is a proper name, associated with the concept "human being”
  • the concept "human being” is itself linked to the "hold” capacity since human beings hold objects.
  • the third category of rules includes so-called structural rules, because they stem from the semantic links established between the lexical characteristics within the transient. These rules are therefore drawn from the semantic attributes of the characteristics resulting from the structural constructions which link two lexical characteristics together. For example, if it has been identified that the lexical characteristic associated with the chain "Fred” is linked to the lexical characteristic associated with the chain "holds" by a semantic attribute of type "actor", then a corresponding rule replaces the second category rule which linked these two lexical characteristics. These rules are therefore expressed in the form:
  • the cost function instantiates these rules with the observations chosen as a function of the combinatorics of concept identifiers of each group resulting from the Extrap () function.
  • the optimization of this cost function makes it possible to determine the combination of each concept identifier of each list which offers the best semantics for the current transient, the lexical characteristics of which are thus updated with the new concept identifiers which are considered to be more relevant.
  • the Applicant has discovered that the use of a non-monotonic probabilistic logical inference engine makes it possible for the first time to offer a satisfactory result for implementing a method based on linguistic constructions. Indeed, the Sem () function, thanks to the semantic adjustment it offers each time the loop is executed, is fundamental in obtaining a favorable result.
  • the loop continues with a loop which will test each of the model structural constructions on all the characteristics of the transient and determine which ones are likely to apply. For this, in an operation 220 a ConStr [] array of model structural constructions is unstacked, and in an operation 230, the structural construction c resulting from operation 220 is tested with all the characteristics of the current transient in a Match () function .
  • the Match () function is executed by the pairer 8 and FIG. 5 shows an example of implementation of this function.
  • the Match () function analyzes each of the conditions of the structural construction c and constructs the tuples of conditions which satisfy the conditions of the structural construction.
  • the list L [] of the conditions of construction c is retrieved by means of a Locks function []
  • a loop is launched in which this list is unstacked in an operation 510 and the characteristics of the current transient are each compared to the current condition.
  • the transient is unstacked in an operation 520 and the corresponding characteristic f compared with the current condition 1 in an operation 530. If the characteristic f satisfies condition 1, then the following characteristic is tested by repeating the operation 520.
  • an AddFt () function is executed in an operation 540.
  • the AddFt () function adds in an array m [] all the groups of characteristics which satisfy a condition of the structural construction.
  • the function AddFt () determines those of the groups of the array m [] which are compatible with this characteristic taking into account all the conditions of the structural construction, and adds the characteristic f to all compatible feature groups.
  • a function Rem () reduces the table m [] to check the groups of product characteristics and keep only those which are complete, ie which fulfill all the conditions of structural construction. These groups therefore form tuples of characteristics which are likely to have the structural construction applied, then the function ends in an operation 599.
  • the function of Figure 5 can be performed in many ways.
  • the loop could be performed so as to exclude the test of a characteristic as soon as it is detected that it does not satisfy a condition, for example by testing the value associated with it in the table m [] in start of loop.
  • Other variants may be considered.
  • the characteristics which correspond to construction c are then stored in a table Con [] in an operation 235, then the loop resumes with operation 210.
  • the table Con [] is tested in a operation 240. If the table Con [] contains constructions, then operations 250 to 270 will analyze these constructions and choose the most relevant and establish a list of options for the case where the chosen constructions would lead to a dead end in the following loops . If this table is empty, then no structural construction can be applied to the characteristics of the transient. Since this test is inside a loop, this means that the semantic graph has not been fully resolved. The fact that the table Con [] is empty indicates that it is not possible to complete the semantic graph. It will therefore be necessary to explore the options established in the previous loop (s). This will be done in operation 290.
  • a function Ord processes the table Con [] and produces two tables C2M [] and OC []
  • the table C2M [] contains the list of the most probable structural constructions, while the table OC [] contains the list of options.
  • the Ord () function initializes a first list by removing the first tuple from the array Con [] Then iterates through all the other tuples in the array Con [], and, each time that an n- tuple concerns a characteristic of the first tuple, it introduces it into the first list and removes it from the table Con [] Once all the tuples have been browsed, the operation is repeated with the rest of the table Con [], until 'so that it is empty.
  • the C2M [] and OC [] arrays are processed in a Filt () function by filter 10 to determine if there is reason to believe that the frequency choice was not the right one. More precisely, in the case of tables C2M [] and OC [], we find us in a situation where several structural constructions correspond to the same characteristic. In other words, there is a lexical ambiguity, and the Filt () function will try to resolve it by a semantic analysis.
  • Figure 6 shows an example of implementation of the Filt () function.
  • the Filt () function is a loop which analyzes each conclusion of the C2M [] array by unstacking it in an operation 610. Then, in an operation 620, an Opt () function generates an array N [] which receives the current conclusion c and all the options corresponding to it in the OC [] table Then, in an operation 620, a Rules [] function generates an R [] table of analysis rules. For example in the case where two nominal groups are separated by a comma, it is necessary to determine whether it is a list or if it is an apposition.
  • the structural constructions corresponding to the list on the one hand and to the apposition on the other hand are translated into two rules which are stored in the table R [] with the concept identifiers attached to the characteristic concerned.
  • These rules are in the example described here drawn from the filtering rules in memory 4. More precisely, the rules define predicates between the characteristics. However, if for all the constructions of the array N [] there is no rule, then nothing is introduced in the array R [] for the construction c.
  • an observation table Obs [] is generated by an Observ () function in order to determine the observations related to the concept identifier of the characteristic concerned by the construction c and each of the rules of the table R []
  • the inference engine is again applied to the array R [] and the array Obs [] If the array R [] is empty, then nothing is done and the order established with the arrays C2M [] and OC [] is maintained. Otherwise, the inference engine makes it possible to semantically determine which of the constructions is the most semantically relevant. This results in a table Con2 [] of the constructions to be applied to the current transient and a table OC [] of options. When all the constructions in table C2M [] have been processed, the function ends in operation 699.
  • the Filt [] function could be omitted.
  • the constructions chosen from the table Con2 [] are applied to the current transient in an operation 270 by the combiner 12 in a Merge () function.
  • Fa figure 7 represents an example of implementation of the function Merge ().
  • the table Con2 [] is unstacked in an operation 700.
  • the table OC [] is also unstacked in order to store the corresponding options.
  • the current transient is stored with the options of operation 710 in an operation 720.
  • This operation is crucial because it is this which will make it possible to traverse in the most complete and efficient way in operation 290
  • the transients introduced in the table Tst_Stack [] in operation 720 are all different from each other since between two applications of operation 720, the transient is modified in operation 730.
  • the table Tst_Stack [] contains the detail of all the constructions applied to the transient, one by one, and classified in time by the very nature of the loop.
  • the conclusions of the unstacked construction in operation 700 are applied to the current transient. For that, if these conclusions apply to an existing characteristic, then this one is updated. Otherwise, a new characteristic is created in the transient.
  • the MergeQ function ends in an operation 799.
  • an operation 280 determines with a Goal () function if the sentence has been fully resolved and if the semantic graph is finished. For this, the Goal () function determines if all the tokens have been filled with a concept identifier, if all the characteristics define a tree with all the branches connected to each other, i.e.
  • Operation 290 consists of unstacking the table Tst_Stack [] supplied by the execution of operation 720, and resuming the loop in operation 270 using the first option.
  • FIG. 2 the function in FIG. 2 is a systematic algorithm based on known data and almost devoid of heuristics (we could qualify the filtering rules as heuristics, but they are optional).
  • This demonstrates the repeatable nature of the processing of the device 2.
  • the processing of the device 2 is both syntactic by the application of structural constructions and semantic by the use of the rectifier 6 and the filter 10. It is this approach completely new, made possible by the use of a non-monotonic probabilistic logical inference engine which makes it possible to apply a model based on constructions and which produces a semantic understanding.
  • the device 2 initializes the transient with the lexical constructions in the order of their frequency in the database of concepts: "Holds, verb""small,adjective","a, article de construction ”,“ match, verb ”and“ Fred, proper noun ”.
  • the lexical constructions could be classified by their order in the sentence, or in a chosen order so as to determine a degree of confidence in the choice of the first lexical constructions, and to place towards the end of the transient the lexical constructions for which the degree of confidence is the lowest.
  • FIG. 18 represents the complete transient associated with the example of FIG. 17, and FIG. 19 represents the semantic graph which corresponds to it.
  • the lexical characteristics are linked together by semantic attributes in non-lexical characteristics. This is shown in Figure 18 by the binding of elements of type? ArgXX and? RefYY or of type? ArgXX and? ArgYY.
  • FIG. 19 translates these semantic links, and makes it possible to represent the semantic graph which describes the meaning of the sentence, as produced by the device 2.
  • the device 2 therefore produces a final transient which has a tree structure which contains all the both syntactic and semantic links of the entire sentence. This tree makes it possible to produce a semantic graph which gives the meaning of the sentence.
  • this semantic description layer can be enriched incrementally, by providing new sentences, without having to redo all of the training.
  • this layer is interrogable, and makes it possible to analyze what comprises the device 2, which makes it much more manipulable.

Abstract

A device for automatically processing text by computer which receives a sentence cut into tokens, and which uses a rectifier, a matching device, and a combiner in a repetitive manner, to produce a tree-shaped structure that describes the syntactic and semantic links of the sentence based on probabilistic, non-monotonic logic.

Description

Dispositif de traitement automatique de texte par ordinateur  Computer automatic word processor
L’invention concerne le domaine du traitement automatique d’un texte par ordinateur, et plus particulièrement le domaine du traitement du langage naturel, ou NLP (Natural Language Processing en anglais). The invention relates to the field of automatic processing of a text by computer, and more particularly to the field of natural language processing, or NLP (Natural Language Processing in English).
Le traitement du langage naturel connaît deux principales branches : les méthodes linguistiques et les méthodes à base d’entraînement automatique. Natural language processing has two main branches: linguistic methods and automatic training methods.
Les méthodes de la première branche sont basées sur la théorisation des langues issues des théories de Chomsky. Cependant, cette branche n’a fait l’objet que de mises en œuvre à bases d’ heuristiques largement manuelles et complexes et n’a jamais connu d’application informatique donnant des résultats satisfaisants pour une application générale. The methods of the first branch are based on the theorization of languages from Chomsky's theories. However, this branch has only been the subject of largely manual and complex heuristic-based implementations and has never known a computer application giving satisfactory results for a general application.
Les bases de l’intelligence artificielle fondée sur l’entraînement automatique ont été posées dans les années 1960. Dans les cinq dernières années, au gré des évolutions technologiques, et avec l’explosion des quantités de données accessibles pour réaliser des entraînements automatiques (ML pour machine leaming en anglais, DL pour Deep Leaming en anglais et NN pour Neural Networks en anglais), ce domaine a connu une progression exponentielle. The foundations of artificial intelligence based on automatic training were laid in the 1960s. In the last five years, as technology evolved, and with the explosion of the amount of data available to perform automatic training (ML for machine leaming in English, DL for Deep Leaming in English and NN for Neural Networks in English), this field has grown exponentially.
D’une manière générale, les entraînements automatiques reposent sur la détermination par une machine d’un modèle statistique déterminé sur la base d’un entraînement dont les paramètres sont fixés par la personne qui programme l’entraînement, et sur la base d’un jeu d’entraînement. Dans la pratique, cela signifie que le concepteur maîtrise les principes de l’entraînement et les paramètres de celui-ci ainsi que les données sur lesquelles l’entraînement se fonde, mais pas le résultat, qui est appelé modèle d’inférence. Ainsi, une fois l’entraînement terminé, c’est le modèle d’inférence qui est utilisé pour réaliser les prédictions sur les données d’entrée que l’on souhaite traiter, sans que le concepteur soit capable de le voir autrement que comme une boîte noire (black box en anglais). Appliquées au NLP, ces méthodes reposent principalement sur la vectorisation des mots, avec des modèles de type Bag-of-words, ou encore Word2Vec, et le traitement de ces vecteurs comme un problème d’entraînement automatique. Ces modèles reposent également sur un enchaînement analyse syntaxique suivi d’une analyse sémantique. Ainsi, les phrases sont d’abord découpées syntaxiquement, puis un sens est plaqué sur le résultat. In general, automatic training is based on the determination by a machine of a statistical model determined on the basis of training, the parameters of which are fixed by the person who schedules the training, and on the basis of a training game. In practice, this means that the designer has mastered the principles of training and its parameters as well as the data on which training is based, but not the result, which is called the inference model. Thus, once the training is finished, it is the inference model which is used to make the predictions on the input data which one wishes to process, without the designer being able to see it other than as a black box. Applied to NLP, these methods are mainly based on vectorization of words, with Bag-of-words type models, or Word2Vec, and the treatment of these vectors as a problem of automatic training. These models are also based on a syntactic analysis sequence followed by a semantic analysis. Thus, the sentences are first cut syntactically, then a meaning is placed on the result.
Néanmoins, la nature « boîte noire » des modèles d’inférence produits est contradictoire avec l’objectif poursuivi dans le NLP. En effet, le langage a un sens, c’est même son fondement. De plus, ce sens ne s’exprime pas uniquement par la syntaxe ou par la sémantique, mais par une combinaison des deux. Pour ces raisons, et contrairement à ce que l’on pourrait croire, les solutions de cette deuxième branche reposent également sur une quantité d’heuristiques importante, qui ont le défaut supplémentaire d’être dépourvues de sens ou de logique perceptible, car elles sont créées pour satisfaire le moteur d’inférence dont l’organisation n’est pas comprise. However, the “black box” nature of the inference models produced is contradictory to the objective pursued in the NLP. Indeed, language has a meaning, it is even its foundation. In addition, this meaning is not expressed only by syntax or semantics, but by a combination of the two. For these reasons, and contrary to what one might think, the solutions of this second branch also rest on a large quantity of heuristics, which have the additional defect of being devoid of perceptible sense or logic, because they are created to satisfy the inference engine whose organization is not understood.
Il existe donc un besoin pour un dispositif de traitement automatique de texte stable, fonctionnel dans le sens le plus général du terme, et qui ne repose pas exclusivement sur des heuristiques. There is therefore a need for a stable automatic word processing device, functional in the most general sense of the term, and which is not based exclusively on heuristics.
L’invention vient améliorer la situation. A cet effet, l’invention propose un dispositif de traitement automatique de texte par ordinateur, comprenant une mémoire agencée pour recevoir des données de texte à analyser sous la forme de jetons comprenant chacun une chaîne de caractères et un identifiant de jeton unique, une base de données de concepts associant des chaînes de caractères et des identifiants de concept, certains au moins des identifiants de concept étant associés entre eux, des données de constructions lexicales modèles et des données de constructions structurelles modèles, comprenant chacune une ou plusieurs conditions d’application à une caractéristique et une ou plusieurs conclusions constituant des éléments à appliquer à une caractéristique, et une base de données d’observations associant au moins deux identifiants de concept, un type de relation et une valeur d’observation indiquant une probabilité de véracité du type de relation entre les au moins deux identifiants de concept, le dispositif étant agencé pour travailler de manière répétitive sur un transitoire comprenant des caractéristiques lexicales et des caractéristiques structurelles produites en appliquant des constructions lexicales modèles et des constructions structurelles modèles, le transitoire étant initialisé avec des caractéristiques lexicales comprenant pour chaque jeton un identifiant de concept dont la fréquence est la plus importante dans la base de données de concepts et qui est associé à la chaîne de caractère du jeton. The invention improves the situation. To this end, the invention provides an automatic text processing device by computer, comprising a memory arranged to receive text data to be analyzed in the form of tokens each comprising a character string and a unique token identifier, a base concept data associating character strings and concept identifiers, at least some of the concept identifiers being associated with each other, model lexical construction data and model structural construction data, each comprising one or more application conditions to a characteristic and one or more conclusions constituting elements to be applied to a characteristic, and an observation database associating at least two concept identifiers, a type of relation and an observation value indicating a probability of veracity of the type of relationship between the at least two concept identifiers, the dis positive being arranged to work so repetitive on a transient comprising lexical characteristics and structural characteristics produced by applying model lexical constructions and model structural constructions, the transient being initialized with lexical characteristics comprising for each token a concept identifier whose frequency is the most important in the concept database and which is associated with the token character string.
Ce dispositif comprend en outre : This device also includes:
un rectifïcateur agencé pour déterminer pour chaque caractéristique lexicale d’un transitoire une liste d’identifiants de concept associés à l’identifiant de concept de cette caractéristique lexicale, pour déterminer un ensemble d’observations correspondant aux identifiants de concept des listes ainsi déterminées, et pour appliquer un moteur d’inférence logique probabiliste non-monotone pour déterminer l’identifiant de concept de chaque liste tel que les valeurs d’observations associées à ces identifiants de concept minimisent une fonction de coût définie en appliquant un opérateur de logique multivaluée à une ou plusieurs règles tirées du contenu des caractéristiques du transitoire et instanciées avec des valeurs d’observations correspondantes, et pour remplacer les identifiants de concept des caractéristiques lexicales du transitoire par les identifiants de concept ainsi déterminés,  a rectifier arranged to determine for each lexical characteristic of a transient a list of concept identifiers associated with the concept identifier of this lexical characteristic, to determine a set of observations corresponding to the concept identifiers of the lists thus determined, and to apply a non-monotonic probabilistic logical inference engine to determine the concept identifier of each list such that the observation values associated with these concept identifiers minimize a defined cost function by applying a multivalued logic operator to a or several rules drawn from the content of the characteristics of the transient and instantiated with corresponding observation values, and to replace the concept identifiers of the lexical characteristics of the transient with the concept identifiers thus determined,
un apparieur agencé pour déterminer parmi les constructions structurelles modèles celles dont la ou les conditions s’appliquent à une ou plusieurs des caractéristiques du transitoire, et pour retourner la liste des constructions structurelles avec la ou les caractéristiques auxquelles s’appliquent leurs conditions, le dispositif étant en outre agencé pour classer les constructions structurelles associées à chaque caractéristique par fréquence d’utilisation, la première construction structurelle devant être appliquée au transitoire et les autres formant une liste d’options, et  a pairer arranged to determine among the model structural constructions those whose condition (s) apply to one or more of the characteristics of the transient, and to return the list of structural constructions with the characteristic (s) to which their conditions apply, the device being further arranged to classify the structural constructions associated with each characteristic by frequency of use, the first structural construction to be applied to the transient and the others forming a list of options, and
un combinateur agencé pour exécuter de manière séquentielle la sélection d’une construction structurelle devant être appliquée au transitoire, le stockage d’une copie du transitoire avec la liste d’options associée à la construction structurelle, et l’application de la construction structurelle devant être appliquée au transitoire à la ou les caractéristiques du transitoire à laquelle cette construction structurelle a été associée par l’apparieur, et pour répéter cette exécution séquentielle sur le transitoire ainsi modifié avec la construction structurelle devant être appliquée au transitoire suivante. a combiner arranged to execute sequentially the selection of a structural construction to be applied to the transient, the storage of a copy of the transient with the list of options associated with the structural construction, and the application of the structural construction to be applied to the transient to the characteristic or characteristics of the transient to which this structural construction has been associated by the pairer, and to repeat this sequential execution on the transient thus modified with the structural construction to be applied to the next transient.
Ce dispositif est en outre agencé pour déterminer, après l’exécution du combinateur, si les caractéristiques du transitoire produit définissent un arbre dont tous les nœuds sont liés entre eux et dépourvu de cycle, pour retourner cet arbre si c’est le cas, et pour répéter l’exécution du rectifïcateur, de l’apparieur et du combinateur sur le dernier transitoire produit sinon, et est en outre agencé, lorsque l’apparieur ne retourne aucune construction structurelle à appliquer au transitoire, pour remplacer le transitoire courant par la copie du transitoire la plus récente, et pour exécuter le combinateur avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire.. Ce dispositif est particulièrement avantageux car il permet de résoudre les problèmes décrits plus haut. En effet, il repose entièrement sur l’application d’un algorithme dont les règles sont liées à la linguistique. This device is also arranged to determine, after the execution of the combinator, if the characteristics of the transient product define a tree of which all the nodes are linked together and devoid of cycle, to return this tree if this is the case, and to repeat the execution of the rectifier, the pairer and the combiner on the last transient produced otherwise, and is also arranged, when the pairer does not return any structural construction to be applied to the transient, to replace the current transient with the copy of the most recent transient, and to execute the combinator with the first construction from the list of options as a structural construction to be applied to the transient. This device is particularly advantageous because it makes it possible to solve the problems described above. Indeed, it is entirely based on the application of an algorithm whose rules are linked to linguistics.
Dans diverses variantes, le dispositif pourra présenter une ou plusieurs des caractéristiques suivantes : In various variants, the device may have one or more of the following characteristics:
- le moteur d’inférence logique probabiliste non-monotone comprend un optimisateur utilisant l’algorithme des multiplicateurs avec directions alternées,  - the non-monotonic probabilistic logic inference engine includes an optimizer using the algorithm of multipliers with alternating directions,
- le dispositif comprend en outre un filtre agencé pour déterminer, pour chaque construction structurelle devant être appliquée et la liste d’options associée un jeu de règles, pour déterminer un jeu d’observations à partir du jeu de règles et du ou des identifiants de concept associé à la caractéristique à laquelle doit être appliquée la construction structurelle devant être appliquée, et pour appliquer le moteur d’inférence logique probabiliste non-monotone avec le jeu de règles et le jeu d’observation afin de déterminer la construction structurelle devant être appliquée au transitoire et la liste d’options,  the device further comprises a filter arranged to determine, for each structural construction to be applied and the list of options associated with a set of rules, to determine a set of observations from the set of rules and the identifier (s) of concept associated with the characteristic to which the structural construction to be applied must be applied, and to apply the non-monotonic probabilistic logical inference engine with the rule set and the observation game in order to determine the structural construction to be applied to the transient and the list of options,
- le rectifïcateur définit des règles fréquentielles à partir de caractéristiques lexicales du transitoire, des règles de voisinage à partir des identifiants de concept des caractéristiques lexicales du transitoire et des identifiants de concept qui leur sont associés dans la base de données de concept à une distance choisie, et des règles structurelles tirées d’attributs sémantiques de caractéristiques non lexicales du transitoire liant entre elles deux caractéristiques lexicales, - the rectifier defines frequency rules from lexical characteristics of the transient, neighborhood rules from concept identifiers of the lexical characteristics of the transient and the concept identifiers associated with them in the concept database at a chosen distance , and structural rules drawn from attributes semantics of non-lexical characteristics of the transient linking two lexical characteristics,
- le combinateur est agencé pour stocker uniquement la copie du transitoire avec la liste d’options associée à la construction structurelle, et en ce que, lorsque l’apparieur ne retourne aucune construction structurelle à appliquer au transitoire, pour remplacer le transitoire courant par la copie du transitoire la plus récente, et pour exécuter le combinateur avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire, puis en répétant l’application du rectifïeur, de l’apparieur et du combinateur avec le transitoire résultant,  - the combiner is arranged to store only the copy of the transient with the list of options associated with the structural construction, and in that, when the pairer does not return any structural construction to be applied to the transient, to replace the current transient with the copy of the most recent transient, and to execute the combiner with the first construction from the list of options as a structural construction to be applied to the transient, then repeating the application of the rectifier, the pairer and the combinator with the resulting transient,
- le combinateur est agencé pour stocker les constructions structurelles restantes devant être appliquées au transitoire en même temps que la copie du transitoire avec la liste d’options associée à la construction structurelle, et en ce que lorsque l’apparieur ne retourne aucune construction structurelle à appliquer au transitoire, pour remplacer le transitoire courant par la copie du transitoire la plus récente, et pour exécuter le combinateur avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire ainsi que les constructions structurelles restantes, puis en répétant l’application du rectifïeur, de l’apparieur et du combinateur avec le transitoire résultant,  - the combiner is arranged to store the remaining structural constructions to be applied to the transient at the same time as the copy of the transient with the list of options associated with the structural construction, and in that when the matcher does not return any structural construction to apply to the transient, to replace the current transient with the most recent copy of the transient, and to execute the combiner with the first construction from the list of options as a structural construction to apply to the transient as well as the remaining structural constructions, then by repeating the application of the rectifier, the pairer and the combiner with the resulting transient,
- le dispositif est agencé pour analyser l’arbre retourné et pour produire un graphe sémantique dont les nœuds sont formés par les caractéristiques lexicales et leur identifiant de concept, et donc les liens sont définis par les attributs sémantiques de caractéristiques non lexicales liant entre elles deux caractéristiques lexicales, et  - the device is arranged to analyze the returned tree and to produce a semantic graph whose nodes are formed by the lexical characteristics and their concept identifier, and therefore the links are defined by the semantic attributes of non-lexical characteristics linking them two lexical characteristics, and
- le moteur d’inférence est agencé pour appliquer un opérateur de logique multivaluée choisi parmi le groupe comprenant la t-norme de Lukasiewicz, la t-norme minimale et le produit de Harnacher.  - the inference engine is arranged to apply a multivalued logic operator chosen from the group comprising the Lukasiewicz t-norm, the minimum t-norm and the Harnacher product.
L’invention concerne également un procédé de traitement automatique de texte mis en œuvre par ordinateur, comprenant les opérations suivantes : The invention also relates to an automatic word processing method implemented by computer, comprising the following operations:
a) recevoir des données de texte à analyser sous la forme de jetons comprenant chacun une chaîne de caractères et un identifiant de jeton unique, une base de données de concepts associant des chaînes de caractères et des identifiants de concept, certains au moins des identifiants de concept étant associés entre eux, des données de constructions lexicales modèles et des données de constructions structurelles modèles, comprenant chacune une ou plusieurs conditions d’application à une caractéristique et une ou plusieurs conclusions constituant des éléments à appliquer à une caractéristique, et une base de données d’observations associant au moins deux identifiants de concept, un type de relation et une valeur d’observation indiquant une probabilité de véracité du type de relation entre les au moins deux identifiants de concept, a) receive text data to be analyzed in the form of tokens each comprising a character string and a unique token identifier, a concept database associating character strings and concept identifiers, at least some of the identifiers of concept being associated with each other, construction data model lexicals and model structural construction data, each comprising one or more conditions of application to a characteristic and one or more conclusions constituting elements to be applied to a characteristic, and a database of observations associating at least two identifiers of concept, a type of relation and an observation value indicating a probability of veracity of the type of relation between the at least two concept identifiers,
b) initialiser un transitoire pouvant comprendre des caractéristiques lexicales et des caractéristiques structurelles produites en appliquant des constructions lexicales modèles et des constructions structurelles modèles, avec des caractéristiques lexicales comprenant pour chaque jeton un identifiant de concept dont la fréquence est la plus importante dans la base de données de concepts et qui est associé à la chaîne de caractère du jeton, c) travailler de manière répétitive sur le transitoire en répétant les opérations successives suivantes : b) initialize a transient which may include lexical characteristics and structural characteristics produced by applying model lexical constructions and model structural constructions, with lexical characteristics comprising for each token a concept identifier whose frequency is the most important in the database concept data and which is associated with the character string of the token, c) work repetitively on the transient by repeating the following successive operations:
cl) déterminer pour chaque caractéristique lexicale d’un transitoire une liste d’ identifiants de concept associés à l’identifiant de concept de cette caractéristique lexicale, pour déterminer un ensemble d’observations correspondant aux identifiants de concept des listes ainsi déterminées, et pour appliquer un moteur d’inférence logique probabiliste non-monotone pour déterminer l’identifiant de concept de chaque liste tel que les valeurs d’observations associées à ces identifiants de concept minimisent une fonction de coût définie en appliquant un opérateur de logique multivaluée à une ou plusieurs règles tirées du contenu des caractéristiques du transitoire et instanciées avec des valeurs d’observations correspondantes, et pour remplacer les identifiants de concept des caractéristiques lexicales du transitoire par les identifiants de concept ainsi déterminés, cl) determine for each lexical characteristic of a transient a list of concept identifiers associated with the concept identifier of this lexical characteristic, to determine a set of observations corresponding to the concept identifiers of the lists thus determined, and to apply a non-monotonic probabilistic logical inference engine for determining the concept identifier of each list such that the observation values associated with these concept identifiers minimize a defined cost function by applying a multivalued logic operator to one or more rules taken from the content of the characteristics of the transient and instantiated with corresponding observation values, and to replace the concept identifiers of the lexical characteristics of the transient with the concept identifiers thus determined,
c2) déterminer parmi les constructions structurelles modèles celles dont la ou les conditions s’appliquent à une ou plusieurs des caractéristiques du transitoire, et pour retourner la liste des constructions structurelles avec la ou les caractéristiques auxquelles s’appliquent leurs conditions, c2) determine among the model structural constructions those whose condition (s) apply to one or more of the characteristics of the transient, and to return the list of structural constructions with the characteristic (s) to which their conditions apply,
c3) classer les constructions structurelles associées à chaque caractéristique par fréquence d’utilisation, la première construction structurelle devant être appliquée au transitoire et les autres formant une liste d’options, et c4) exécuter de manière séquentielle la sélection d’une construction structurelle devant être appliquée au transitoire, le stockage d’une copie du transitoire avec la liste d’options associée à la construction structurelle, et l’application de la construction structurelle devant être appliquée au transitoire à la ou les caractéristiques du transitoire à laquelle cette construction structurelle a été associée par l’apparieur, et pour répéter cette exécution séquentielle sur le transitoire ainsi modifié avec la construction structurelle devant être appliquée au transitoire suivante, c3) classify the structural constructions associated with each characteristic by frequency of use, the first structural construction to be applied to the transient and the others forming a list of options, and c4) execute sequentially the selection of a structural construction to be applied to the transient, the storage of a copy of the transient with the list of options associated with the structural construction, and the application of the structural construction to be applied to the transient to the characteristic or characteristics of the transient to which this structural construction has been associated by the matcher, and to repeat this sequential execution on the transient thus modified with the structural construction to be applied to the following transient,
c5) déterminer, après l’exécution du combinateur, si les caractéristiques du transitoire produit définissent un arbre dont tous les nœuds sont liés entre eux et dépourvu de cycle, pour retourner cet arbre si c’est le cas, et pour répéter les opérations cl) à c5) sur le transitoire courant sinon, c5) to determine, after the execution of the combinator, if the characteristics of the transient produced define a tree of which all the nodes are connected between them and devoid of cycle, to return this tree if it is the case, and to repeat the operations cl ) to c5) on the current transient otherwise,
c6) si l’opération c2) ne retourne aucune construction structurelle à appliquer au transitoire, remplacer le transitoire courant par la copie du transitoire la plus récente, exécuter l’opération c5) avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire. c6) if operation c2) does not return any structural construction to be applied to the transient, replace the current transient with the most recent copy of the transient, execute operation c5) with the first construction in the list of options as structural construction to be applied to the transient.
Dans diverses variantes, le procédé pourra présenter une ou plusieurs des caractéristiques suivantes : In various variants, the process may have one or more of the following characteristics:
- l’application du moteur d’inférence logique probabiliste non-monotone comprend l’application d’un optimisateur utilisant l’algorithme des multiplicateurs avec directions alternées,  - the application of the non-monotonic probabilistic logical inference engine includes the application of an optimizer using the algorithm of multipliers with alternating directions,
- le procédé comprend en outre, entre l’opération c3) et l’opération c4) :  - the method further comprises, between operation c3) and operation c4):
c7) déterminer, pour chaque construction structurelle devant être appliquée et la liste d’options associée un jeu de règles, déterminer un jeu d’observations à partir du jeu de règles et du ou des identifiants de concept associé à la caractéristique à laquelle doit être appliquée la construction structurelle devant être appliquée, et appliquer le moteur d’inférence logique probabiliste non-monotone avec le jeu de règles et le jeu d’observation afin de déterminer la construction structurelle devant être appliquée au transitoire et la liste d’options, c7) determine, for each structural construction to be applied and the list of options associated with a set of rules, determine a set of observations from the set of rules and the concept identifier (s) associated with the characteristic to which must be applied the structural construction to be applied, and apply the non-monotonic probabilistic logical inference engine with the rule set and the observation game to determine the structural construction to be applied to the transient and the list of options,
- l’opération cl) comprend la définition de règles fréquentielles à partir de caractéristiques lexicales du transitoire, de règles de voisinage à partir des identifiants de concept des caractéristiques lexicales du transitoire et des identifiants de concept qui leur sont associés dans la base de données de concept à une distance choisie, et de règles structurelles tirées d’attributs sémantiques de caractéristiques non lexicales du transitoire liant entre elles deux caractéristiques lexicales, - operation c1) includes the definition of frequency rules from lexical characteristics of the transient, neighborhood rules from the concept identifiers of the lexical characteristics of the transient and the concept identifiers associated with them in the concept database at a chosen distance, and from structural rules drawn from semantic attributes of non-lexical characteristics of the transient linking two lexical characteristics,
- l’opération c4) stocker uniquement la copie du transitoire avec la liste d’options associée à la construction structurelle, et dans lequel, après de l’exécution de l’opération cl), les opérations cl) à c7) sont répétées sur le transitoire courant,  - operation c4) store only the copy of the transient with the list of options associated with the structural construction, and in which, after the execution of operation cl), operations cl) to c7) are repeated on the current transient,
- l’opération c4) stocke les constructions structurelles restantes devant être appliquées au transitoire en même temps que la copie du transitoire avec la liste d’options associée à la construction structurelle, et dans lequel, après l’exécution de l’opération cl), l’opération c5) est appliquée avec les constructions structurelles restantes, puis en répétant l’application du rectifïeur, puis, les opérations cl) à cl) sont répétées sur le transitoire courant, et  - operation c4) stores the remaining structural constructions to be applied to the transient at the same time as the copy of the transient with the list of options associated with the structural construction, and in which, after the execution of operation cl) , operation c5) is applied with the remaining structural constructions, then by repeating the application of the rectifier, then, operations cl) to cl) are repeated on the current transient, and
- le procédé comprend en outre l’opération suivante :  - the method further comprises the following operation:
d) analyser l’arbre retourné par l’opération c6) et produire un graphe sémantique dont les nœuds sont formés par les caractéristiques lexicales et leur identifiant de concept, et donc les liens sont définis par les attributs sémantiques de caractéristiques non lexicales liant entre elles deux caractéristiques lexicales. d) analyze the tree returned by operation c6) and produce a semantic graph whose nodes are formed by the lexical characteristics and their concept identifier, and therefore the links are defined by the semantic attributes of non-lexical characteristics linking them two lexical features.
D’autres caractéristiques et avantages de l’invention apparaîtront mieux à la lecture de la description qui suit, tirée d’exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : Other characteristics and advantages of the invention will appear more clearly on reading the description which follows, taken from examples given by way of illustration and not limitation, drawn from the drawings in which:
- la figure 1 représente une vue schématique d’un dispositif selon l’invention,  - Figure 1 shows a schematic view of a device according to the invention,
- la figure 2 représente un exemple de mise en œuvre d’une fonction de traitement automatique de texte par le dispositif de la figure 1 ,  - Figure 2 shows an example of implementation of an automatic word processing function by the device of Figure 1,
- les figures 3 à 7 représentent des exemples de mise en œuvre d’opérations de la figure 2, - Figures 3 to 7 show examples of the implementation of operations in Figure 2,
- les figures 8 à 17 représentent des représentations d’étapes de traitement de la fonction de la figure 2 sur un exemple simplifié, FIGS. 8 to 17 represent representations of processing steps of the function of FIG. 2 on a simplified example,
- la figure 18 représente un arbre retourné par le dispositif selon l’invention, et  - Figure 18 shows a tree returned by the device according to the invention, and
- la figure 19 représente un graphe sémantique tiré de l’arbre de la figure 18. Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. FIG. 19 represents a semantic graph drawn from the tree of FIG. 18. The drawings and the description below essentially contain elements of a certain nature. They can therefore not only serve to better understand the present invention, but also contribute to its definition, if necessary.
La présente description est de nature à faire intervenir des éléments susceptibles de protection par le droit d’auteur et/ou le copyright. Le titulaire des droits n’a pas d’objection à la reproduction à l’identique par quiconque du présent document de brevet ou de sa description, telle qu’elle apparaît dans les dossiers officiels. Pour le reste, il réserve intégralement ses droits. This description is likely to involve elements that may be protected by copyright and / or copyright. The rights holder has no objection to identical reproduction by anyone of this patent document or its description, as it appears in the official records. For the rest, he fully reserves his rights.
La figure 1 représente une vue schématique d’un dispositif selon l’invention. Le dispositif 2 comprend une mémoire 4, un rectifïcateur 6, un apparieur 8, un filtre 10, un combinateur 12 et un validateur 14. FIG. 1 represents a schematic view of a device according to the invention. The device 2 comprises a memory 4, a rectifier 6, a pairer 8, a filter 10, a combiner 12 and a validator 14.
Dans le cadre de l’invention, la mémoire 4 peut être tout type de stockage de données propre à recevoir des données numériques : disque dur, disque dur à mémoire flash (S SD en anglais), mémoire flash sous toute forme, mémoire vive, disque magnétique, stockage distribué localement ou dans le cloud, etc. Les données calculées par le dispositif peuvent être stockées sur tout type de mémoire similaire à la mémoire 4, ou sur celle-ci. Ces données peuvent être effacées après que le dispositif a effectué ses tâches ou conservées. In the context of the invention, the memory 4 can be any type of data storage suitable for receiving digital data: hard disk, hard disk with flash memory (S SD in English), flash memory in any form, random access memory, magnetic disk, locally or cloud distributed storage, etc. The data calculated by the device can be stored on any type of memory similar to memory 4, or thereon. This data can be deleted after the device has completed its tasks or stored.
Dans l’exemple décrit ici, la mémoire 4 reçoit des données permanentes qui servent à mettre en œuvre le dispositif 2 et peuvent être enrichies au fur et à mesure de ses exécutions. Dans l’exemple décrit ici, la mémoire 4 reçoit également des données temporaires ou données de travail, qui sont générées pour les besoins d’une exécution donnée du dispositif 2, et qui ne sont pas conservées après cette exécution. Les données permanentes et les données de travail peuvent être stockées sur une même mémoire 4 ou sur des mémoires distinctes. In the example described here, the memory 4 receives permanent data which is used to implement the device 2 and can be enriched as it is executed. In the example described here, the memory 4 also receives temporary data or work data, which are generated for the needs of a given execution of the device 2, and which are not kept after this execution. The permanent data and the working data can be stored on the same memory 4 or on separate memories.
Les données permanentes comprennent une base de données de concepts sémantique basée au moins en partie sur la base de données Wordnet (voir https://wordnet.princeton.edu/) pour la langue anglaise (d’autres bases de données pourront être utilisées pour d’autres langues). Les données permanentes contiennent également, et de manière non exhaustive, les données suivantes, qui seront définies en détail plus bas : The permanent data includes a semantic concept database based at least in part on the Wordnet database (see https://wordnet.princeton.edu/) for the English language (other databases may be used for other languages). The permanent data also contains, and is not exhaustive, the following data, which will be defined in detail below:
- des constructions lexicales modèles pour une langue donnée, c’est-à-dire une condition basée sur la catégorie lexicale d’un mot (son Part of speech en anglais), et une conclusion permettant de caractériser la caractéristique lexicale par sa chaîne de caractère, son part of speech, son identifiant unique de jeton et un identifiant de concept,  - model lexical constructions for a given language, i.e. a condition based on the lexical category of a word (its Part of speech in English), and a conclusion allowing to characterize the lexical characteristic by its chain of character, its part of speech, its unique token identifier and a concept identifier,
- des constructions structurelles modèles pour une langue donnée, c’est-à-dire une ou plusieurs conditions qui relient une caractéristique lexicale ou structurelle et une autre caractéristique lexicale ou structurelle et reflète la structuration syntaxique de la langue donnée, comme le fait qu’un adjectif est préposé ou postposé, ou encore la structure d’une proposition subordonnée de cause, etc.,  - model structural constructions for a given language, that is to say one or more conditions which link a lexical or structural characteristic and another lexical or structural characteristic and reflect the syntactic structuring of the given language, such as the fact that an adjective is preposited or postposed, or the structure of a subordinate proposition of cause, etc.,
- des règles de filtrage, qui permettent de formuler chacune une règle associée à une construction structurelle, afin de lever une ambiguïté lexicale grâce à la sémantique, et - filtering rules, which allow each to formulate a rule associated with a structural construction, in order to remove a lexical ambiguity thanks to the semantics, and
- une base de données d’observations, qui sont des quadruplets associant un type de relation, deux identifiants de concepts, et une valeur d’observation comprise entre 0 et 1 (0 signifiant que le type de relation suggéré est faux, 1 qu’il est vrai, et les autres valeurs une probabilité qu’il soit vrai ou faux). Par exemple, pour le type de relation Est_Un(A,B), la valeur de l’observation de Est_Un(Einstein, homme) serait 1, tandis que la valeur de l’observation de Est_Un(Einstein, chien) serait 0, et que celle de Est_Un(Einstein, génie) serait de 0,95. Ainsi, selon un concept de « closed world » (le monde est fermé), si deux concepts ne sont pas reliés, alors les observations les reliant sont initialisées à 0. Cette base de données d’observations peut être complétée à partir du contenu de la base de données de concepts pour déduire des relations logiques entre les concepts. Les observations pourraient lier plus de deux identifiants de concept. Néanmoins, ce type de relation peut être reformulé par un jeu de plusieurs observations reliant les identifiants de concept deux à deux. - an observation database, which are quadruplets associating a type of relation, two concept identifiers, and an observation value between 0 and 1 (0 signifying that the type of relation suggested is false, 1 that it is true, and the other values a probability that it is true or false). For example, for the type of relation Est_Un (A, B), the value of the observation of Est_Un (Einstein, man) would be 1, while the value of the observation of Est_Un (Einstein, dog) would be 0, and that that of Est_Un (Einstein, genius) would be 0.95. Thus, according to a concept of "closed world" (if the world is closed), if two concepts are not linked, then the observations connecting them are initialized to 0. This database of observations can be completed from the content of the concept database to deduce logical relationships between concepts. Observations could link more than two concept identifiers. However, this type of relationship can be reformulated by a set of several observations linking the concept identifiers two by two.
Dans le cadre de l’invention, le rectifïcateur 6, l’apparieur 8, le filtre 10, le combinateur 12 et le validateur 14 sont des éléments accédant directement ou indirectement à la mémoire 4. Ils peuvent être réalisés sous la forme d’un code informatique approprié exécuté sur un ou plusieurs processeurs. Par processeurs, il doit être compris tout processeur adapté aux calculs décrits plus bas. Un tel processeur peut être réalisé de toute manière connue, sous la forme d’un microprocesseur pour ordinateur personnel, d’une puce dédiée de type FPGA ou SoC (« System on chip » en anglais), d’une ressource de calcul sur une grille, d’un microcontrôleur, ou de toute autre forme propre à fournir la puissance de calcul nécessaire à la réalisation décrite plus bas. Un ou plusieurs de ces éléments peuvent également être réalisés sous la forme de circuits électroniques spécialisés tel un ASIC. Une combinaison de processeur et de circuits électroniques peut également être envisagée. In the context of the invention, the rectifier 6, the pairer 8, the filter 10, the combiner 12 and the validator 14 are elements directly or indirectly accessing memory 4. They can be produced in the form of a appropriate computer code executed on one or more processors. By processors, it must be understood any processor adapted to the calculations described below. Such a processor can be produced in any known manner, in the form of a microprocessor for personal computer, of a dedicated chip of FPGA or SoC type (“System on chip” in English), of a computing resource on a grid, a microcontroller, or any other form capable of providing the computing power necessary for the embodiment described below. One or more of these elements can also be produced in the form of specialized electronic circuits such as an ASIC. A combination of processor and electronic circuits can also be envisaged.
La figure 2 représente un exemple de mise en œuvre d’une fonction de traitement automatique de texte par le dispositif de la figure 1. FIG. 2 represents an example of the implementation of an automatic word processing function by the device in FIG. 1.
Le rôle de la fonction de la Figure 2 est fondamental. En effet, c’est une boucle qui appelle le rectificateur 6, l’apparieur 8, le filtre 10, le combinateur 12 et le validateur 14 afin de créer progressivement un graphe sémantique qui représente le sens de la phrase reçue en entrée. The role of the function in Figure 2 is fundamental. Indeed, it is a loop which calls the rectifier 6, the pairer 8, the filter 10, the combiner 12 and the validator 14 in order to gradually create a semantic graph which represents the meaning of the sentence received as input.
Ainsi, le dispositif 2 offre avec cette fonction une brique fondamentale au NLP car celle- ci est quasi-dépourvue d’heuristique, et offre donc une solution répétible pour créer une sous-couche de langage qui permet aux machines d’accéder à la compréhension sémantique des textes. Le dispositif 2 trouve une application particulièrement efficace dans les domaines du « Question answering » (Réponse aux questions). En effet, il permet d’abord d’analyser un texte pour en établir la sémantique, puis d’analyser de la même manière une question pour la rapprocher de cette sémantique et fournir la réponse. Plus généralement, le dispositif 2 se base sur une base de données de concepts sémantiques existante, mais est capable de l’enrichir grâce à son fonctionnement, contrairement aux méthodes à base d’entraînement automatique. Thus, the device 2 offers with this function a fundamental brick in NLP because it is almost devoid of heuristics, and therefore offers a repeatable solution to create a language underlay which allows machines to access understanding semantics of texts. Device 2 finds a particularly effective application in the fields of "Question answering" (Answer to questions). Indeed, it allows first to analyze a text to establish its semantics, then to analyze a question in the same way to bring it closer to this semantics and provide the answer. More generally, the device 2 is based on an existing database of semantic concepts, but is capable of enriching it by virtue of its operation, unlike the methods based on automatic training.
La fonction de la figure 2 commence par une opération 200 avec une fonction Init(). Un exemple de mise en œuvre de la fonction Init() est explicité avec la figure 3. La fonction Init() a pour rôle d’initialiser la boucle de la figure 2, et en particulier d’initialiser l’objet principal qui est modifié par les boucles afin d’obtenir le graphe sémantique qui est le résultat. Cet objet est ici appelé « transitoire », car il est appelé à évoluer de nombreuses fois, très rapidement, afin de générer le graphe sémantique. The function in Figure 2 begins with an operation 200 with an Init () function. An example of implementation of the Init () function is explained with FIG. 3. The role of the Init () function is to initialize the loop of FIG. 2, and in particular to initialize the main object which is modified. by the loops in order to obtain the semantic graph which is the result. This object is here called “transient”, because it is called to evolve many times, very quickly, in order to generate the semantic graph.
Comme on le verra dans la suite, un transitoire est composé de caractéristiques. Chaque caractéristique peut porter soit sur un jeton particulier, auquel cas elle est appelée caractéristique lexicale, soit sur une relation entre deux caractéristiques lexicales, auquel cas elle est appelée caractéristique structurelle. Une caractéristique structurelle peut elle- même porter sur la relation entre d’autres caractéristiques structurelles, ce qui permet de créer des sens sémantiques complexes. As will be seen below, a transient is made up of characteristics. Each characteristic can relate either to a particular token, in which case it is called a lexical characteristic, or to a relationship between two lexical characteristics, in which case it is called a structural characteristic. A structural characteristic can itself relate to the relationship between other structural characteristics, which makes it possible to create complex semantic meanings.
Cette manière de travailler permet également de construire le graphe sémantique de manière à la fois syntaxique et sémantique, ce qui respecte la nature du langage. Enfin, cela permettra également de traiter le cas de phrases plurilingues. En effet, si une partie d’une phrase n’est pas résolue dans une langue donnée, elle peut être analysée avec les caractéristiques d’une autre langue afin d’identifier un sous-ensemble de phrase dans une deuxième langue qui donne un sens sémantique à une phrase qui n’en avait pas dans la première langue. Cela est complètement inédit dans le domaine du NLP, et est complètement inaccessible aux solutions à base d’entraînement automatique. This way of working also makes it possible to construct the semantic graph in a way that is both syntactic and semantic, which respects the nature of language. Finally, this will also make it possible to deal with the case of multilingual sentences. Indeed, if part of a sentence is not resolved in a given language, it can be analyzed with the characteristics of another language in order to identify a subset of sentence in a second language which gives meaning. semantics to a sentence that did not have one in the first language. This is completely new in the NLP field, and is completely inaccessible to solutions based on automatic training.
Les caractéristiques, qu’elles soient lexicales ou structurelles, sont le fruit de l’application d’objets linguistiques appelés constructions. Ces objets, bien connus dans le domaine de l’analyse linguistique, n’ont jamais trouvé d’application informatique efficace jusqu’à aujourd’hui. Characteristics, whether lexical or structural, are the result of the application of linguistic objects called constructions. These objects, well known in the field of linguistic analysis, have never found an effective computer application until today.
Les constructions s’appuient sur un couple condition(s)/conclusion(s). Dit autrement, une construction est un objet qui se comporte comme suit : si des caractéristiques lexicales ou structurelles remplissent la ou les conditions, alors on va leur appliquer la ou les conclusions de la construction. Ainsi, à chaque fois qu’une boucle trouve des constructions qui s’appliquent aux caractéristiques du transitoire, elle va les compléter ou créer une ou des caractéristiques supplémentaires dans le transitoire si celles-ci n’existent pas encore. Le graphe sémantique sera ainsi construit de proche en proche, en partant des mots et en leur affectant le sens qu’ils ont dans la phrase, puis en regroupant ceux-ci en groupes nominaux, groupes verbaux, puis phrases nominales et verbales, etc., jusqu’à ce que la phrase soit entièrement définie. Comme on le verra, la fonction de la figure 2 est particulièrement puissante car elle permet néanmoins de réévaluer au cours de son exécution le sens associé à un mot et de propager la conséquence de ce changement dans tout le graphe sémantique. The constructions are based on a couple of condition (s) / conclusion (s). In other words, a construction is an object which behaves as follows: if lexical or structural characteristics meet the condition (s), then we will apply the conclusion (s) of the construction to them. Thus, each time a loop finds constructions which apply to the characteristics of the transient, it will complete them or create one or more additional characteristics in the transient if these do not already exist. The semantic graph will thus be constructed step by step, starting from the words and assigning them the meaning they have in the sentence, then by grouping them in nominal groups, verbal groups, then nominal and verbal sentences, etc., until the sentence is fully defined. As we will see, the function of Figure 2 is particularly powerful because it nevertheless allows to reevaluate during its execution the meaning associated with a word and to propagate the consequence of this change throughout the semantic graph.
Les conditions et les conclusions des constructions sont constituées de champs dont les valeurs sont fixes ou variables. The conditions and conclusions of the constructions consist of fields whose values are fixed or variable.
Les conditions portent typiquement sur un ou plusieurs des champs de l’un ou plusieurs des types suivants : Conditions typically relate to one or more of the fields of one or more of the following types:
- Frontières, qui utilise des prédicats du même nom pour définir les bornes d’un groupe d’éléments,  - Borders, which uses predicates of the same name to define the bounds of a group of elements,
- SousUnités, qui reçoit une liste d’éléments désignés par l’élément,  - SubUnits, which receives a list of elements designated by the element,
- CatégorieLexicale, qui définit une catégorie lexicale (par exemple, nom, verbe, nom commun, nom propre, adverbe, article, adjectif, etc.,  - LexicalCategory, which defines a lexical category (for example, noun, verb, common noun, proper noun, adverb, article, adjective, etc.,
- ClasseLexicale, qui définit une classe lexicale (par exemple, verbe transitif, verbe intransitif, auxiliaire, déterminant, etc.),  - ClasseLexicale, which defines a lexical class (for example, transitive verb, intransitive verb, auxiliary, determinant, etc.),
- CatégoriePhrasale, qui définit des groupes de mots entre eux (par exemple phrase nominale, phrase verbale, etc.), et  - CategoryPhrasale, which defines groups of words between them (for example nominal sentence, verbal sentence, etc.), and
- CatégorieClausale, qui définit une catégorie de clause et permet de grouper des groupes de mots entre eux, par exemple des phrases nominales, des phrases verbales, etc.  - ClausalCategory, which defines a category of clause and allows groups of words to be grouped together, for example nominal sentences, verbal sentences, etc.
Les conclusions portent typiquement sur un ou plusieurs des champs de l’un ou plusieurs des types suivants : The conclusions typically relate to one or more of the fields of one or more of the following types:
- Référent, qui définit un identifiant de variable qui unit plusieurs éléments à un même niveau,  - Referent, which defines a variable identifier which unites several elements at the same level,
- Args, qui définit un argument constitutif de liens entre éléments,  - Args, which defines an argument constituting links between elements,
- Parent, qui définit l’élément parent de l’élément courant dans la structure,  - Parent, which defines the parent element of the current element in the structure,
- Sens, qui définit un sens relationnel (par exemple une relation temporelle - simultanée, point de référence temporelle, etc.), et  - Meaning, which defines a relational meaning (for example a temporal - simultaneous relation, time reference point, etc.), and
- ClasseSémantiqueQ, qui définit une classe sémantique. Les conditions et les conclusions peuvent présenter de nombreux autres champs, comme Forme (relative à une forme d’attribut), Chaîne (une chaîne de caractère), Précède (un prédicat liant deux éléments), Suit (un prédicat liant deux éléments), Interrogation (indique qu’un groupe d’éléments comprend un verbe, un pronom ou un adverbe interrogatif), Préposition, TypeDePhrase (par exemple, phrase nominale, etc.), Nombre, Date, Personne, ValenceSémantique (par exemple, acteur et son identifiant d’élément, etc.), ValenceSyntactique (par exemple, sujet ou objet et son identifiant d’élément), FonctionSyntaxique (par exemple adjectif, auxiliaire, verbe, etc.), Temps, Voix (active ou passive), FormePassive (oui ou non), etc. - SemanticClass, which defines a semantic class. Conditions and conclusions can have many other fields, such as Form (relative to an attribute form), String (a character string), Precede (a predicate linking two elements), Suit (a predicate linking two elements), Query (indicates that a group of elements includes a verb, a pronoun or an interrogative adverb), Preposition, TypeDePhrase (for example, nominal sentence, etc.), Number, Date, Person, ValenceSemantique (for example, actor and sound element identifier, etc.), Syntactic Valence (for example, subject or object and its element identifier), SyntacticFunction (for example adjective, auxiliary, verb, etc.), Time, Voice (active or passive), PassiveForm ( yes or no), etc.
Par exemple, la construction de type « Composé » peut être définie comme suit : For example, the "Compound" type construction can be defined as follows:
{  {
"id": "noms-composés",  "id": "compound-names",
"score": 0.0,  "score": 0.0,
"type": "Phrasal",  "type": "Phrasal",
"description": "règles de noms composés",  "description": "compound name rules",
"catégorie": "en",  "category": "in",
"groupe": "stagel",  "group": "stagel",
"constructionClass": "Classic",  "constructionClass": "Classic",
"locks": [  "locks": [
{  {
"nom": "?nounl",  "name": "? nounl",
"compréhension" :  "comprehension" :
{  {
"nom": "?nounl",  "name": "? nounl",
"map": {  "map": {
"CatégorieLexicale": "[nom]"  "LexicalCategory": "[name]"
}  }
h  h
h  h
{  {
"nom": "?noun2", "compréhension": { "name": "? noun2", "comprehension": {
"nom": "?noun2",  "name": "? noun2",
"map": {  "map": {
" CatégorieLexicale ": "[nom]"  "LexicalCategory": "[name]"
}  }
h  h
{  {
"nom": "?compound",  "name": "? compound",
"compréhension": {  "comprehension": {
"nom": "?compound",  "name": "? compound",
"map": {  "map": {
"Forme": {  "Form": {
"nom": "?v2",  "name": "? v2",
"map": {  "map": {
"Accolé":”[[?nounl,?noun2]]" "Attached": ”[[? Nounl,? Noun2]]"
} }
}  }
}  }
h  h
],  ],
"conclusions": [  "conclusions": [
{  {
"nom": "?compound",  "name": "? compound",
"map": {  "map": {
"Accord": "?v5",  "Agreement": "? V5",
"Args": M[?v9,?v7]", "Args": M [? V9,? V7] ",
"Référent":”?ref',  "Referrer": ”? Ref ',
"ClasseSémantique": "identifier",  "SemanticClass": "identify",
"Parent": "?vl0",  "Parent": "? Vl0",
"Sens": "[[attribute, ?v9, ?v6]]",  "Meaning": "[[attribute,? V9,? V6]]",
"SousUnités": M[?nounl,?noun2]//union", "CatégorieLexicale" : " [nom, composé] " } "SubUnits": M [? Nounl,? Noun2] // union "," CategoryLexical ":" [name, compound] " }
}  }
]  ]
}  }
Dans cette construction, le « ? » indique qu’il s’agit d’une variable, qui pourra se retrouver à la fois dans les conditions et dans les conclusions, servir à définir l’application de la construction, etc. In this construction, the "? "Indicates that this is a variable, which can be found both in the conditions and in the conclusions, used to define the application of the construction, etc.
Il convient également de noter que la fonction de la figure 2 a une nature quasi-récursive. Cela rend sa compréhension moins aisée qu’une fonction séquentielle classique et doit être pris en compte dans la lecture de ce qui suit. C’est pour cette raison que sont fournies les figures 8 à 17. Elles n’apportent pas en soi un enseignement sur la technique du dispositif 2, mais elles permettent de mieux comprendre comment celui-ci explore tous les possibles pour établir le graphe sémantique. It should also be noted that the function of Figure 2 has a quasi-recursive nature. This makes it less easy to understand than a conventional sequential function and must be taken into account when reading the following. It is for this reason that figures 8 to 17 are provided. They do not in themselves provide teaching on the technique of device 2, but they allow a better understanding of how it explores all the possibilities for establishing the semantic graph. .
La fonction Init() commence avec une opération 300 dans laquelle un tableau Tk[] est initialisé par une fonction Lex(). La fonction Lex() réalise l’analyse lexicale d’une phrase reçue en entrée par le dispositif 2, et fournit un tableau Tk[] dans lequel la phrase est découpée en jetons normalisés. Le tableau Tk[] stocke pour chaque jeton la chaîne de caractères lui correspondant et un identifiant unique de ce jeton dans la phrase. Ce résultat est également stocké dans un tableau Tst_Stack[] qui sera décrit plus bas. The Init () function begins with an operation 300 in which an array Tk [] is initialized by a Lex () function. The Lex () function performs the lexical analysis of a sentence received as input by device 2, and provides an array Tk [] in which the sentence is cut into standardized tokens. The Tk [] array stores for each token the corresponding character string and a unique identifier for this token in the sentence. This result is also stored in a table Tst_Stack [] which will be described below.
La fonction Lex() implémente un analyseur lexical pour produire une séquence de jetons (tokens en anglais) normalisés. La notion de normalisation est en référence au fait que certains mots peuvent être écrits sous plusieurs formes (par exemple les contractions en langue anglaise), ou que certains caractères doivent être supprimés ou regroupés. Ainsi l’analyseur lexical réalise une ou plusieurs des fonctions suivantes : The Lex () function implements a lexical analyzer to produce a sequence of standardized tokens. The notion of standardization refers to the fact that certain words can be written in several forms (for example contractions in English), or that certain characters must be deleted or grouped. Thus the lexical analyzer performs one or more of the following functions:
- nettoyage des caractères gênants (indice de note de bas de page, caractères spéciaux, etc.),  - cleaning up annoying characters (footnote index, special characters, etc.),
- découpage d’un texte en phrases (grâce aux délimiteurs tels que le point, le point d’exclamation, etc.), - regroupement des expressions spéciales entre elles (dates, etc.), - splitting of a text into sentences (thanks to delimiters such as the point, the exclamation point, etc.), - grouping of special expressions between them (dates, etc.),
- développement des mots contractés (par exemple « don’t » devient « do not »), - development of contracted words (for example "don’t" becomes "do not"),
- découpage de la phrase en jetons normalisés pour traitement par le dispositif 2. - division of the sentence into standardized tokens for processing by the device 2.
L’analyseur lexical ne fait pas l’objet de l’invention et l’homme du métier connaît plusieurs solutions dans l’état de l’art pour le mettre en œuvre. The lexical analyzer is not the subject of the invention and a person skilled in the art knows several solutions in the state of the art for implementing it.
Ensuite, dans une opération 310, des prédicats de forme sont initialisés par une fonction SFP() qui reçoit le tableau Tk[] comme variable. La fonction SFP() prend le tableau Tk[] et va produire des prédicats relatifs aux positions des jetons les uns par rapport aux autres. Ainsi, pour deux jetons [ballon] [rouge], la fonction SFP() crée un prédicat de type Accolé([ballon], [rouge]) et un prédicat de type Précède([ballon], [rouge]). Ces prédicats indiquent donc que le jeton [ballon] est accolé au jeton [rouge] et qu’il le précède directement. Dans l’exemple décrit ici, le prédicat Précède() est généré pour tous les jetons en aval d’un jeton amont. La fonction SFP() est agencée pour générer également des prédicats de type Frontières(), qui indiquent des indices de début et de fin d’une chaîne de plusieurs jetons. Le jeu de prédicats ainsi produit est stocké dans la mémoire 4, et est accédé pour déterminer l’application de conditions, comme décrit plus bas. Then, in an operation 310, form predicates are initialized by an SFP () function which receives the table Tk [] as a variable. The SFP () function takes the table Tk [] and will produce predicates relative to the positions of the tokens relative to each other. Thus, for two tokens [balloon] [red], the SFP () function creates a predicate of type Attached ([balloon], [red]) and a predicate of type Precede ([balloon], [red]). These predicates therefore indicate that the token [balloon] is attached to the token [red] and that it precedes it directly. In the example described here, the Predicate () predicate is generated for all tokens downstream of an upstream token. The SFP () function is designed to also generate Borders () predicates, which indicate start and end indices of a chain of several tokens. The set of predicates thus produced is stored in memory 4, and is accessed to determine the application of conditions, as described below.
Une boucle est alors lancée pour analyser chaque caractéristique lexicale du transitoire afin d’initialiser les identifiants de concept. A ce stade, et c’est la dernière fois dans la boucle, on peut identifier caractéristique du transitoire et concept. Ainsi, dans une opération 320, le transitoire Tst est dépilé, et dans une opération 330, une fonction Find() détermine, pour le jeton courant, l’identifiant de syntaxique de la base de données de concepts de la mémoire 4 qui a la fréquence la plus importante, et le stocke dans un tableau Ltk[] Par exemple, si le jeton est « rouge », la fonction Find() renverra l’identifiant syntaxique associé à l’adjectif « rouge » plutôt que celui associé à la couleur « rouge », car le mot est utilisé plus souvent en tant qu’ adjectif qu’en tant que substantif. Simultanément, la fonction Find() attribue l’identifiant de concept le plus fréquent parmi les identifiants de concept associés à cet identifiant syntaxique. Enfin, les autres identifiants syntaxiques sont stockés en tant qu’options dans un tableau OC[] Ces options seront stockées dans le tableau Tst_Stack[] dans une opération 350 décrite plus bas. Lorsque tous les jetons ont été ainsi traités, le tableau Ltk[] est fourni comme argument à une fonction LexConstr() dans une opération 340. La fonction LexConstr() retourne une liste de constructions lexicales Cstr[] qui permettront d’initialiser les caractéristiques lexicales du transitoire. A loop is then launched to analyze each lexical characteristic of the transient in order to initialize the concept identifiers. At this stage, and this is the last time in the loop, we can identify characteristic of the transient and concept. Thus, in an operation 320, the transient Tst is unstacked, and in an operation 330, a Find () function determines, for the current token, the syntax identifier of the database of concepts of memory 4 which has the most important frequency, and stores it in an Ltk array [] For example, if the token is "red", the Find () function will return the syntax identifier associated with the adjective "red" rather than that associated with the color "Red" because the word is used more often as an adjective than as a noun. Simultaneously, the Find () function assigns the most frequent concept identifier among the concept identifiers associated with this syntactic identifier. Finally, the other syntactic identifiers are stored as options in an OC table [] These options will be stored in the Tst_Stack [] table in an operation 350 described below. When all the tokens have been treated in this way, the Ltk [] array is supplied as an argument to a LexConstr () function in an operation 340. The LexConstr () function returns a list of lexical constructions Cstr [] which will initialize the characteristics lexicals of the transient.
Cela est réalisé dans une opération 350 dans laquelle une fonction Merge() reçoit la liste de constructions lexicales Cstr[] de l’opération 340 et le transitoire Tst, et les combine. Là encore, comme il s’agit de la première opération, la combinaison est garantie, c’est-à- dire que la condition de chaque construction lexicale de la liste Cstr[] est nécessairement remplie par une caractéristique du transitoire Tst, puisqu’elles ont été choisies spécifiquement pour cela. Comme indiqué plus haut, des caractéristiques lexicales optionnelles sont générées et stockées dans un tableau Tst_Stack[] Ces options peuvent être explorées lorsqu’un problème est identifié. Cela est notamment assuré par une fonction Bck() dans une opération 290. Cela sera décrit plus en détail avec la description du combinateur 12 en rapport avec la figure 7. This is done in an operation 350 in which a Merge () function receives the list of lexical constructs Cstr [] from operation 340 and the transient Tst, and combines them. Here again, since this is the first operation, the combination is guaranteed, that is to say that the condition of each lexical construction of the list Cstr [] is necessarily fulfilled by a characteristic of the transient Tst, since they were chosen specifically for this. As noted above, optional lexical features are generated and stored in a Tst_Stack [] array. These options can be explored when a problem is identified. This is notably ensured by a function Bck () in an operation 290. This will be described in more detail with the description of the combiner 12 in relation to FIG. 7.
En sortie, le transitoire Tst est donc initialisé avec les caractéristiques lexicales correspondant à chaque jeton, avec l’identifiant unique de jeton et l’identifiant de concept qui a été déterminé comme étant le plus probable. Les prédicats de type Accolé() et Précède() sont également stockés pour la suite, et la fonction se termine dans une opération 399. At output, the transient Tst is therefore initialized with the lexical characteristics corresponding to each token, with the unique token identifier and the concept identifier which has been determined to be the most likely. The predicates of type Attached () and Preceded () are also stored for the rest, and the function ends in an operation 399.
Après l’opération 200 d’initialisation, la boucle de la figure 2 commence avec une opération 205 dans laquelle une fonction Max() détermine si une condition de sortie liée à un nombre excessif d’exécutions de boucle est remplie. Cela permet d’éviter de rester bloqué dans une boucle de calcul trop longue (par exemple au-delà de 1000 itérations). Lorsque cette condition est remplie, la fonction de la figure 2 se termine dans une opération 299 par une erreur. En variante, l’opération 205 peut être omise. After the initialization operation 200, the loop of Figure 2 begins with an operation 205 in which a Max () function determines whether an output condition related to an excessive number of loop executions is fulfilled. This avoids getting stuck in a too long calculation loop (for example beyond 1000 iterations). When this condition is met, the function of Figure 2 ends in operation 299 with an error. Alternatively, operation 205 can be omitted.
Ensuite, une nouvelle boucle commence. Cette boucle commence dans une opération 210 par l’exécution d’une fonction Sem(). La fonction Sem() est dans l’exemple décrit ici mise en œuvre par le rectifïcateur 6, et la figure 4 en donne un exemple de réalisation. D’un point de vue général, le but poursuivi par la fonction Sem() est d’analyser le transitoire courant, qui vient d’être enrichi par la boucle précédente, et de voir s’il ne serait pas approprié de changer un ou plusieurs des identifiants de concepts des caractéristiques lexicales compte tenu des caractéristiques structurelles du transitoire. Dit autrement, la fonction Sem() vient « secouer » le sac d’ identifiants de concepts disponibles pour chaque caractéristique lexicale, afin de déterminer s’il n’y a pas un nouveau concept qui donnerait plus de sens à la phrase décrite par le transitoire à ce stade, d’un point de vue sémantique. Then a new loop begins. This loop begins in operation 210 with the execution of a Sem () function. The function Sem () is in the example described here implemented by the rectifier 6, and FIG. 4 gives an exemplary embodiment. From a general point of view, the goal pursued by the Sem () function is to analyze the current transient, which has just been enriched by the previous loop, and to see if it would not be appropriate to change one or several of the concept identifiers of the lexical characteristics taking into account the structural characteristics of the transient. In other words, the Sem () function "shakes" the bag of concept identifiers available for each lexical characteristic, in order to determine if there is not a new concept which would give more meaning to the sentence described by the. transient at this stage, from a semantic point of view.
Ainsi, dans une opération 400, le rectifïcateur 6 crée un tableau Concept[] qui recueille tous les identifiants de concept des caractéristiques lexicales du transitoire courant Tst. Thus, in an operation 400, the rectifier 6 creates a Concept table [] which collects all the concept identifiers of the lexical characteristics of the current transient Tst.
Ensuite, dans une opération 410, une fonction Extrap() détermine pour chacun de ces identifiants de concept la liste des identifiants de concept qui lui sont reliés dans la base de données de concepts et stocke chaque liste dans une entrée d’un tableau Candid[] Sur la base du tableau Candid[], une fonction Observ() collecte toutes les observations reliées à chacun des concepts de chaque liste du tableau Candid[] et les regroupe dans un tableau Obs[] dans une opération 420. Then, in an operation 410, an Extrap () function determines for each of these concept identifiers the list of concept identifiers which are linked to it in the concept database and stores each list in an entry in a Candid table [ ] Based on the Candid [] array, an Observ () function collects all observations related to each of the concepts in each list in the Candid [] array and groups them into an Obs [] array in an operation 420.
Enfin, dans une opération 430, une fonction Infer() utilise le tableau Candid[] et le tableau Obs[] pour modifier le transitoire courant, et la fonction se termine avec une opération 499. Finally, in an operation 430, an Infer () function uses the Candid [] table and the Obs [] table to modify the current transient, and the function ends with an operation 499.
Plus précisément, la fonction Infer() utilise un moteur d’inférence logique probabiliste non-monotone qui calcule une multitude de fonctions de coût en fonctions des observations du tableau Obs[] pour chaque combinaison d’un identifiant de concept par liste du tableau Candid[] Dit autrement, la combinaison des listes crée une combinatoire d’ identifiants de concept, et les observations associées à chaque identifiant de concept sont utilisés pour calculer une fonction de coût à partir de celles-ci. More precisely, the function Infer () uses a non-monotonic probabilistic logical inference engine which calculates a multitude of cost functions as a function of the observations of the table Obs [] for each combination of a concept identifier by list of the table Candid [] In other words, the combination of lists creates a combinatorial of concept identifiers, and the observations associated with each concept identifier are used to calculate a cost function from them.
La fonction de coût est réalisée en déterminant une pluralité de règles à partir du transitoire. Ensuite, ces règles sont évaluées sur la base des observations en appliquant un opérateur de logique multivaluée qui permet de linéariser le problème. Dans la version préférée de l’invention, c’est la t-norme de Lukasiewicz. En variante, l’opérateur pourrait être la t-norme minimale ou le produit de Harnacher. The cost function is performed by determining a plurality of rules from the transient. Then, these rules are evaluated on the basis of observations by applying a multivalued logic operator which allows to linearize the problem. In the preferred version of the invention, it is the Lukasiewicz t-standard. Alternatively, the operator could be the minimum t-standard or the Harnacher product.
Ces règles appartiennent à trois catégories. These rules fall into three categories.
La première catégorie de règles comprend des règles dites fréquentielles. Elles sont basées sur la fréquence de l’identifiant de concept qui est associé aux caractéristiques lexicales présentes dans le transitoire. Ces règles s’expriment sous la forme CaractLex (Groupe(Car)) => Concept(Groupe(Car)). Il y a une règle par groupe d’ identifiants de concept issu de la fonction Extrap(). The first category of rules includes so-called frequency rules. They are based on the frequency of the concept identifier which is associated with the lexical characteristics present in the transient. These rules are expressed in the character CaractLex (Group (Car)) => Concept (Group (Car)). There is one rule per group of concept identifiers from the Extrap () function.
La deuxième catégorie de règles comprend des règles dites de voisinage, qui sont basées sur les liens entre les identifiants de concept des caractéristiques lexicales dans la base de données de concept. Pour ces règles, la base de données de concepts est explorée à partir de chaque groupe d’ identifiants de concept, et cherche les identifiants de concept « voisins » dans les autres groupes d’ identifiants de concept, à une distance choisie. Par exemple, si un premier groupe contient le concept « Fred », et un deuxième contient le concept « hold » (tenir en anglais), alors ces concepts sont à une distance de deux concepts dans la base de données de concepts. En effet, « Fred » est un nom propre, associé au concept « être humain », et le concept « être humain » est lui-même relié à la capacité « hold » puisque les êtres humains tiennent des objets. Ainsi, lorsqu’une liaison est trouvé entre deux identifiants de concept de deux groupes distincts à une distance choisies dans la base de données de concepts, une règle de voisinage est créée. Ces règles s’expriment sous la forme : The second category of rules includes so-called neighborhood rules, which are based on the links between the concept identifiers of the lexical characteristics in the concept database. For these rules, the concept database is explored from each group of concept identifiers, and searches for “neighboring” concept identifiers in the other groups of concept identifiers, at a chosen distance. For example, if a first group contains the concept "Fred", and a second contains the concept "hold" (hold in English), then these concepts are at a distance of two concepts in the database of concepts. Indeed, "Fred" is a proper name, associated with the concept "human being", and the concept "human being" is itself linked to the "hold" capacity since human beings hold objects. Thus, when a connection is found between two concept identifiers of two distinct groups at a distance chosen from the concept database, a neighborhood rule is created. These rules are expressed in the form:
CaractLex(Groupe(Carl))&CaractLex(Groupe(Car2))&Lien(Groupe(Carl),Groupe(Car 2)) => Concept(Groupe(Car2))  Charex (Group (Carl)) & Charex (Group (Car2)) & Link (Group (Carl), Group (Car 2)) => Concept (Group (Car2))
Enfin, la troisième catégorie de règles comprend des règles dites structurelles, car elles sont issues des liens sémantiques établis entre les caractéristiques lexicales au sein du transitoire. Ces règles sont donc tirées des attributs sémantiques des caractéristiques issues des constructions structurelles qui lient entre elles deux caractéristiques lexicales. Par exemple, s’il a été identifié que la caractéristique lexicale associée à la chaîne « Fred » est liée à la caractéristique lexicale associée à la chaîne « holds » par un attribut sémantique de type « acteur », alors une règle correspondante vient remplacer la règle de deuxième catégorie qui liait ces deux caractéristiques lexicales. Ces règles s’expriment donc sous la forme : Finally, the third category of rules includes so-called structural rules, because they stem from the semantic links established between the lexical characteristics within the transient. These rules are therefore drawn from the semantic attributes of the characteristics resulting from the structural constructions which link two lexical characteristics together. For example, if it has been identified that the lexical characteristic associated with the chain "Fred" is linked to the lexical characteristic associated with the chain "holds" by a semantic attribute of type "actor", then a corresponding rule replaces the second category rule which linked these two lexical characteristics. These rules are therefore expressed in the form:
CaractLex(Groupe(Carl))&CaractLex(Groupe(Car2))&AttSem(Groupe(Carl),Groupe( Car2)) => Concept(Groupe(Car2))  CaractLex (Group (Carl)) & CaractLex (Group (Car2)) & AttSem (Group (Carl), Group (Car2)) => Concept (Group (Car2))
La fonction de coût vient instancier ces règles avec les observations choisies en fonction de la combinatoire d’ identifiants de concepts de chaque groupe issu de la fonction Extrap(). L’optimisation de cette fonction de coût permet de déterminer la combinaison de chaque identifiant de concept de chaque liste qui offre la meilleure sémantique pour le transitoire courant, dont les caractéristiques lexicales sont ainsi mises à jour avec les nouveaux identifiants de concept qui sont considérés comme plus pertinents. The cost function instantiates these rules with the observations chosen as a function of the combinatorics of concept identifiers of each group resulting from the Extrap () function. The optimization of this cost function makes it possible to determine the combination of each concept identifier of each list which offers the best semantics for the current transient, the lexical characteristics of which are thus updated with the new concept identifiers which are considered to be more relevant.
Il apparaît donc que, lorsque le transitoire ne contient que des constructions lexicales, il n’y a que des règles de première catégorie et de deuxième catégorie, et la fonction de coût est basée sur la co-occurrence des identifiants de concept dans la base de données de concepts. Puis, au fur et à mesure que les constructions structurelles rajoutent des liens sémantiques entre les caractéristiques lexicales dans le transitoire, des règles de troisième catégorie, beaucoup plus discriminantes, sont introduites dans la fonction de coût et vont la contraindre fortement. It therefore appears that, when the transient contains only lexical constructions, there are only first category and second category rules, and the cost function is based on the co-occurrence of concept identifiers in the database of concept data. Then, as the structural constructions add semantic links between the lexical characteristics in the transient, third category rules, much more discriminating, are introduced in the cost function and will strongly constrain it.
La Demanderesse a découvert que l’utilisation d’un moteur d’inférence logique probabiliste non-monotone permet d’offrir pour la première fois un résultat satisfaisant pour implémenter une méthode à base de constructions linguistiques. En effet, la fonction Sem(), grâce à l’ajustement sémantique qu’elle offre à chaque exécution de la boucle, est fondamentale dans l’obtention d’un résultat favorable. The Applicant has discovered that the use of a non-monotonic probabilistic logical inference engine makes it possible for the first time to offer a satisfactory result for implementing a method based on linguistic constructions. Indeed, the Sem () function, thanks to the semantic adjustment it offers each time the loop is executed, is fundamental in obtaining a favorable result.
La Demanderesse a en outre découvert qu’il était particulièrement avantageux d’utiliser un moteur d’inférence incluant un optimisateur utilisant l’algorithme des multiplicateurs avec directions alternées (ou ADMM pour « Altemating Direction Method of Multipliers » en anglais). En effet, l’utilisation d’un tel optimisateur permet de réduire les coûts de temps de calcul en linéarisant le problème, alors que le problème de base est de type NP, c’est-à-dire une combinatoire de toutes les variantes de chaque liste entre elles, multipliée par la quantité d’observations pour chaque membre de chaque liste. The Applicant has also discovered that it was particularly advantageous to use an inference engine including an optimizer using the algorithm of multipliers with alternate directions (or ADMM for “Altemating Direction Method of Multipliers "in English). Indeed, the use of such an optimizer makes it possible to reduce the computation time costs by linearizing the problem, whereas the basic problem is of type NP, that is to say a combinatorial of all the variants of each list between them, multiplied by the quantity of observations for each member of each list.
Une fois l’ajustement sémantique réalisé, la boucle se poursuit avec une boucle qui va tester chacune des constructions structurelles modèles sur toutes les caractéristiques du transitoire et déterminer celles qui sont susceptibles de s’appliquer. Pour cela, dans une opération 220 un tableau ConStr[] des constructions structurelles modèles est dépilé, et dans une opération 230, la construction structurelle c issue de l’opération 220 est testée avec toutes les caractéristiques du transitoire courant dans une fonction Match(). Once the semantic adjustment has been made, the loop continues with a loop which will test each of the model structural constructions on all the characteristics of the transient and determine which ones are likely to apply. For this, in an operation 220 a ConStr [] array of model structural constructions is unstacked, and in an operation 230, the structural construction c resulting from operation 220 is tested with all the characteristics of the current transient in a Match () function .
La fonction Match() est exécutée par l’apparieur 8 et la figure 5 représente un exemple de mise en œuvre de cette fonction. D’une manière générale, la fonction Match() analyse chacune des conditions de la construction structurelle c et construit les n-uplets de conditions qui satisfont les conditions de la construction structurelle. Ainsi, dans une opération 500 la liste L[] des conditions de la construction c est récupérée au moyen d’une fonction Locks[] Ensuite, une boucle est lancée dans laquelle cette liste est dépilée dans une opération 510 et les caractéristiques du transitoire courant sont chacune comparées à la condition courante. Pour cela, le transitoire est dépilé dans une opération 520 et la caractéristique f correspondante comparée à la condition 1 courante dans une opération 530. Si la caractéristique f satisfait la condition 1, alors la caractéristique suivante est testée en répétant l’opération 520. Si la caractéristique f satisfait la condition, alors une fonction AddFt() est exécutée dans une opération 540. La fonction AddFt() vient ajouter dans un tableau m[] tous les groupes de caractéristiques qui satisfont une condition de la construction structurelle. Ainsi, lorsqu’une caractéristique satisfait la condition 1, la fonction AddFt() détermine ceux des groupes du tableau m[] qui sont compatibles avec cette caractéristique compte tenu de l’ensemble des conditions de la construction structurelle, et ajoute la caractéristique f à tous les groupes de caractéristiques compatibles. Après l’opération 540, ou si l’opération 530 est négative, alors la boucle reprend avec la caractéristique suivante dans l’opération 520. Lorsque toutes les caractéristiques ont été testées pour la condition 1 courante, la boucle est répétée avec la condition suivante en répétant l’opération 510. Lorsque toutes les conditions ont été testées, dans une opération 550, une fonction Rem() réduit le tableau m[] pour vérifier les groupes de caractéristiques produits et ne garder que ceux qui sont complets, c’est-à-dire qui remplissent toutes les conditions de la construction structurelle. Ces groupes forment donc des n-uplets de caractéristiques qui sont susceptibles de se voir appliquer la construction structurelle, puis la fonction se termine dans une opération 599. The Match () function is executed by the pairer 8 and FIG. 5 shows an example of implementation of this function. In general, the Match () function analyzes each of the conditions of the structural construction c and constructs the tuples of conditions which satisfy the conditions of the structural construction. Thus, in an operation 500 the list L [] of the conditions of construction c is retrieved by means of a Locks function [] Then, a loop is launched in which this list is unstacked in an operation 510 and the characteristics of the current transient are each compared to the current condition. For this, the transient is unstacked in an operation 520 and the corresponding characteristic f compared with the current condition 1 in an operation 530. If the characteristic f satisfies condition 1, then the following characteristic is tested by repeating the operation 520. If the characteristic f satisfies the condition, then an AddFt () function is executed in an operation 540. The AddFt () function adds in an array m [] all the groups of characteristics which satisfy a condition of the structural construction. Thus, when a characteristic satisfies condition 1, the function AddFt () determines those of the groups of the array m [] which are compatible with this characteristic taking into account all the conditions of the structural construction, and adds the characteristic f to all compatible feature groups. After operation 540, or if operation 530 is negative, then the loop resumes with the following characteristic in operation 520. When all the characteristics have been tested for the current condition 1, the loop is repeated with the following condition by repeating operation 510. When all the conditions have been tested, in an operation 550, a function Rem () reduces the table m [] to check the groups of product characteristics and keep only those which are complete, ie which fulfill all the conditions of structural construction. These groups therefore form tuples of characteristics which are likely to have the structural construction applied, then the function ends in an operation 599.
Il est à noter que la fonction de la figure 5 peut être réalisée de nombreuses manières. Par exemple, la boucle pourrait être réalisée de manière à exclure le test d’une caractéristique dès qu’il est détecté qu’elle ne satisfait pas une condition, par exemple en testant la valeur qui lui est associée dans le tableau m[] en début de boucle. D’autres variantes pourront être envisagées. Note that the function of Figure 5 can be performed in many ways. For example, the loop could be performed so as to exclude the test of a characteristic as soon as it is detected that it does not satisfy a condition, for example by testing the value associated with it in the table m [] in start of loop. Other variants may be considered.
Les caractéristiques qui correspondent à la construction c sont ensuite stockées dans un tableau Con[] dans une opération 235, puis la boucle reprend avec l’opération 210. Une fois toutes les constructions structurelles modèles testées, le tableau Con[] est testé dans une opération 240. Si le tableau Con[] contient des constructions, alors les opérations 250 à 270 vont analyser ces constructions et choisir les plus pertinentes et établir une liste d’options pour le cas où les constructions choisies conduiraient à une impasse dans les boucles suivantes. Si ce tableau est vide, alors aucune construction structurelle ne trouve à s’appliquer aux caractéristiques du transitoire. Comme ce test est à l’intérieur d’une boucle, cela signifie que le graphe sémantique n’a pas été totalement résolu. Le fait que le tableau Con[] soit vide indique qu’il n’est pas possible de compléter le graphe sémantique. Il faudra donc explorer les options établies dans la ou les boucles précédentes. Cela sera réalisé dans une opération 290. The characteristics which correspond to construction c are then stored in a table Con [] in an operation 235, then the loop resumes with operation 210. Once all the model structural constructions have been tested, the table Con [] is tested in a operation 240. If the table Con [] contains constructions, then operations 250 to 270 will analyze these constructions and choose the most relevant and establish a list of options for the case where the chosen constructions would lead to a dead end in the following loops . If this table is empty, then no structural construction can be applied to the characteristics of the transient. Since this test is inside a loop, this means that the semantic graph has not been fully resolved. The fact that the table Con [] is empty indicates that it is not possible to complete the semantic graph. It will therefore be necessary to explore the options established in the previous loop (s). This will be done in operation 290.
Dans l’opération 250, une fonction Ord() traite le tableau Con[] et produit deux tableaux C2M[] et OC[] Le tableau C2M[] contient la liste des constructions structurelles les plus probables, tandis que le tableau OC[] contient la liste des options. Plus précisément, la fonction Ord() initialise une première liste en retirant le premier n-uplet du tableau Con[] Ensuite, elle parcourt tous les autres n-uplets du tableau Con[], et, à chaque fois qu’un n- uplet concerne une caractéristique du premier n-uplet, il l’introduit dans la première liste et le retire du tableau Con[] Une fois tous les n-uplets parcourus, l’opération est répétée avec le reste du tableau Con[], jusqu’à ce que celui-ci soit vide. Il en découle un tableau C2M[] contenant les n-uplets qui ont servi à générer les listes, et un tableau OC[] qui contient les n-uplets qui ont été progressivement rajoutés à chaque liste, en tant qu’options au n-uplet correspondant du tableau C2M[] In operation 250, a function Ord () processes the table Con [] and produces two tables C2M [] and OC [] The table C2M [] contains the list of the most probable structural constructions, while the table OC [] contains the list of options. More precisely, the Ord () function initializes a first list by removing the first tuple from the array Con [] Then it iterates through all the other tuples in the array Con [], and, each time that an n- tuple concerns a characteristic of the first tuple, it introduces it into the first list and removes it from the table Con [] Once all the tuples have been browsed, the operation is repeated with the rest of the table Con [], until 'so that it is empty. This results in a C2M [] table containing the tuples which were used to generate the lists, and an OC [] table which contains the tuples which have been progressively added to each list, as options to the n- corresponding tuple from table C2M []
Dans l’opération 260, les tableaux C2M[] et OC[] sont traités dans une fonction Filt() par le filtre 10 afin de déterminer s’il existe une raison de penser que le choix fréquentiel n’était pas le bon. Plus précisément, dans le cas des tableaux C2M[] et OC[], on se trouve dans une situation où plusieurs constructions structurelles correspondent à la même caractéristique. Dit autrement, il existe une ambiguïté lexicale, et la fonction Filt() va essayer de la lever par une analyse sémantique. La figure 6 représente un exemple de mise en œuvre de la fonction Filt(). In operation 260, the C2M [] and OC [] arrays are processed in a Filt () function by filter 10 to determine if there is reason to believe that the frequency choice was not the right one. More precisely, in the case of tables C2M [] and OC [], we find ourselves in a situation where several structural constructions correspond to the same characteristic. In other words, there is a lexical ambiguity, and the Filt () function will try to resolve it by a semantic analysis. Figure 6 shows an example of implementation of the Filt () function.
La fonction Filt() est une boucle qui analyse chaque conclusion du tableau C2M[] en dépilant celui-ci dans une opération 610. Ensuite, dans une opération 620, une fonction Opt() génère un tableau N[] qui reçoit la conclusion courante c et toutes les options lui correspondant dans le tableau OC[] Puis, dans une opération 620, une fonction Rules[] génère un tableau R[] de règles d’analyse. Par exemple dans le cas où deux groupes nominaux sont séparés par une virgule, il est nécessaire de déterminer s’il s’agit d’une liste ou s’il s’agit d’une apposition. Pour cela, les constructions structurelles correspondant à la liste d’une part et à l’apposition d’autre part sont traduites en deux règles qui sont stockées dans le tableau R[] avec les identifiants de concept attachés à la caractéristique concernée. Ces règles sont dans l’exemple décrit ici tirées des règles de filtrage dans la mémoire 4. Plus précisément, les règles définissent des prédicats entre les caractéristiques. Néanmoins, si pour toutes les constructions du tableau N[] il n’y a aucune règle, alors rien n’est introduit dans le tableau R[] pour la construction c. Ensuite, dans une opération 630, un tableau d’observations Obs[] est généré par une fonction Observ() afin de déterminer les observations en rapport avec l’identifiant de concept de la caractéristique concernée par la construction c et chacune des règles du tableau R[] Enfin, dans une opération 640, le moteur d’inférence est à nouveau appliqué sur le tableau R[] et le tableau Obs[] Si le tableau R[] est vide, alors rien n’est fait et l’ordre établi avec les tableaux C2M[] et OC[] est maintenu. Sinon, le moteur d’inférence permet de déterminer sémantiquement celle des constructions qui est la plus pertinente sémantiquement. Il en résulte un tableau Con2[] des constructions à appliquer au transitoire courant et un tableau OC[] d’options. Lorsque toutes les constructions du tableau C2M[] ont été traitées, la fonction se termine dans une opération 699. The Filt () function is a loop which analyzes each conclusion of the C2M [] array by unstacking it in an operation 610. Then, in an operation 620, an Opt () function generates an array N [] which receives the current conclusion c and all the options corresponding to it in the OC [] table Then, in an operation 620, a Rules [] function generates an R [] table of analysis rules. For example in the case where two nominal groups are separated by a comma, it is necessary to determine whether it is a list or if it is an apposition. For this, the structural constructions corresponding to the list on the one hand and to the apposition on the other hand are translated into two rules which are stored in the table R [] with the concept identifiers attached to the characteristic concerned. These rules are in the example described here drawn from the filtering rules in memory 4. More precisely, the rules define predicates between the characteristics. However, if for all the constructions of the array N [] there is no rule, then nothing is introduced in the array R [] for the construction c. Then, in an operation 630, an observation table Obs [] is generated by an Observ () function in order to determine the observations related to the concept identifier of the characteristic concerned by the construction c and each of the rules of the table R [] Finally, in an operation 640, the inference engine is again applied to the array R [] and the array Obs [] If the array R [] is empty, then nothing is done and the order established with the arrays C2M [] and OC [] is maintained. Otherwise, the inference engine makes it possible to semantically determine which of the constructions is the most semantically relevant. This results in a table Con2 [] of the constructions to be applied to the current transient and a table OC [] of options. When all the constructions in table C2M [] have been processed, the function ends in operation 699.
En variante, la fonction Filt[] pourrait être omise. Une fois la fonction Filt() exécutée, les constructions choisies du tableau Con2[] sont appliquées au transitoire courant dans une opération 270 par le combinateur 12 dans une fonction Merge(). Fa figure 7 représente un exemple de mise en œuvre de la fonction Merge(). Alternatively, the Filt [] function could be omitted. Once the Filt () function has been executed, the constructions chosen from the table Con2 [] are applied to the current transient in an operation 270 by the combiner 12 in a Merge () function. Fa figure 7 represents an example of implementation of the function Merge ().
Fà encore, le tableau Con2[] est dépilé dans une opération 700. Ensuite, dans une opération 710, le tableau OC[] est également dépilé afin de stocker les options correspondantes. Puis dans une opération 720, le transitoire courant est stocké avec les options de l’opération 710 dans une opération 720. Cette opération est cruciale car c’est elle qui permettra de parcourir de la manière la plus complète et efficace dans l’opération 290. Il y a donc un transitoire couplé à une liste d’options de constructions qui est généré avant chaque application d’une construction, et autant de solutions de repli en cas d’échec. Dit autrement, les transitoires introduits dans le tableau Tst_Stack[] à l’opération 720 sont tous différents les uns des autres puisqu’entre deux applications de l’opération 720, le transitoire est modifié dans l’opération 730. Ainsi, le tableau Tst_Stack[] contient le détail de toutes les constructions appliquées au transitoire, une par une, et classée temporellement par la nature même de la boucle. Again, the table Con2 [] is unstacked in an operation 700. Then, in an operation 710, the table OC [] is also unstacked in order to store the corresponding options. Then in an operation 720, the current transient is stored with the options of operation 710 in an operation 720. This operation is crucial because it is this which will make it possible to traverse in the most complete and efficient way in operation 290 There is therefore a transient coupled to a list of construction options which is generated before each application of a construction, and as many fallback solutions in the event of failure. In other words, the transients introduced in the table Tst_Stack [] in operation 720 are all different from each other since between two applications of operation 720, the transient is modified in operation 730. Thus, the table Tst_Stack [] contains the detail of all the constructions applied to the transient, one by one, and classified in time by the very nature of the loop.
Enfin, dans une opération 730, les conclusions de la construction dépilée dans l’opération 700 sont appliquées au transitoire courant. Pour cela, si ces conclusions s’appliquent à une caractéristique existante, alors celle-ci est mise à jour. Sinon, une nouvelle caractéristique est créée dans le transitoire. Forsque toutes les constructions ont été appliquées au transitoire, la fonction MergeQ se termine dans une opération 799. Une fois que la fonction Merge() est terminée, une opération 280 détermine avec une fonction Goal() si la phrase a été entièrement résolue et si le graphe sémantique est fini. Pour cela, la fonction Goal() détermine si tous les jetons ont été remplis avec un identifiant de concept, si toutes les caractéristiques définissent entre elles un arbre dont toutes les branches sont reliées entre elles, c’est-à-dire s’il est possible d’atteindre toutes les caractéristiques de l’arbre à partir de chaque caractéristique, et enfin s’il n’existe pas de cycle dans la structure générée. Si c’est le cas, alors la fonction de la figure 2 se termine dans l’opération 299. Sinon, la boucle reprend avec l’opération 205 pour traiter le transitoire courant. Finally, in an operation 730, the conclusions of the unstacked construction in operation 700 are applied to the current transient. For that, if these conclusions apply to an existing characteristic, then this one is updated. Otherwise, a new characteristic is created in the transient. When all the constructions have been applied to the transient, the MergeQ function ends in an operation 799. Once the Merge () function is finished, an operation 280 determines with a Goal () function if the sentence has been fully resolved and if the semantic graph is finished. For this, the Goal () function determines if all the tokens have been filled with a concept identifier, if all the characteristics define a tree with all the branches connected to each other, i.e. if it is possible to reach all the characteristics of the tree from each characteristic, and finally if there is no cycle in the generated structure. If this is the case, then the function of FIG. 2 ends in operation 299. Otherwise, the loop resumes with operation 205 to process the current transient.
L’opération 290 consiste à dépiler le tableau Tst_Stack[] alimenté par l’exécution de l’opération 720, et à reprendre la boucle à l’opération 270 en utilisant la première option. Operation 290 consists of unstacking the table Tst_Stack [] supplied by the execution of operation 720, and resuming the loop in operation 270 using the first option.
Dans ce qui précède, il apparaît donc que la fonction de la figure 2 est un algorithme systématique basé sur des données connues et quasi dépourvu d’ heuristiques (on pourrait qualifier les règles de filtrage d’heuristique, mais elles sont optionnelles). Cela démontre le caractère répétible du traitement du dispositif 2. De plus, le traitement du dispositif 2 est à la fois syntaxique par l’application des constructions structurelles et sémantique par l’utilisation du rectifïcateur 6 et du filtre 10. C’est cette approche totalement nouvelle, rendue possible grâce à l’utilisation d’un moteur d’inférence logique probabiliste non- monotone qui rend possible l’application d’un modèle à base de constructions et qui produit une compréhension sémantique. In the foregoing, it therefore appears that the function in FIG. 2 is a systematic algorithm based on known data and almost devoid of heuristics (we could qualify the filtering rules as heuristics, but they are optional). This demonstrates the repeatable nature of the processing of the device 2. In addition, the processing of the device 2 is both syntactic by the application of structural constructions and semantic by the use of the rectifier 6 and the filter 10. It is this approach completely new, made possible by the use of a non-monotonic probabilistic logical inference engine which makes it possible to apply a model based on constructions and which produces a semantic understanding.
Les figures 8 à 17 sont données à titre d’exemple afin d’aider à mieux comprendre le fonctionnement de la boucle de la figure 2 et en particulier l’opération 290 sur la phrase « Freds holds a small match ». Figures 8 to 17 are given as an example to help better understand the operation of the loop in Figure 2 and in particular operation 290 on the phrase "Freds holds a small match".
Dans une première étape représentée sur la figure 8, le dispositif 2 initialise le transitoire avec les constructions lexicales dans l’ordre de leur fréquence dans la base de données de concepts : « Holds, verbe » « small, adjectif », « a, article de construction », « match, verbe » et « Fred, nom propre ». En variante, les constructions lexicales pourraient être classées par leur ordre dans la phrase, ou dans un ordre choisi de façon à déterminer un degré de confiance dans le choix des premières constructions lexicales, et pour placer vers la fin du transitoire les constructions lexicales pour lesquelles le degré de confiance est le plus bas. In a first step represented in FIG. 8, the device 2 initializes the transient with the lexical constructions in the order of their frequency in the database of concepts: "Holds, verb""small,adjective","a, article de construction ”,“ match, verb ”and“ Fred, proper noun ”. As a variant, the lexical constructions could be classified by their order in the sentence, or in a chosen order so as to determine a degree of confidence in the choice of the first lexical constructions, and to place towards the end of the transient the lexical constructions for which the degree of confidence is the lowest.
A la boucle suivante, représentée sur la Figure 9, une phrase adjectivale a été créée au- dessus de « small », une phrase nominale au-dessus de « Fred », et deux phrases verbales respectivement au-dessus de « holds » et de « match ». In the next loop, shown in Figure 9, an adjective sentence was created above "small", a nominal sentence above "Fred", and two verbal sentences respectively above "holds" and "Match".
Dans la boucle représentée sur la figure 10, une clause vient lier la phrase nominale de « Fred » et la phrase verbale de « holds », puis les boucles ultérieures échouent. Cet échec remonte des les transitoires du tableau Tst_Stack[] jusqu’à déterminer que l’erreur porte sur la construction lexicale de « match ». Comme « Fred » est de rang inférieur à « match », le transitoire est réduit à la figure 11. « match, nom commun » et « Fred, nom propre » sont alors testés comme option, puis les figures 12 à 15 montrent le développement des constructions sur cette base. In the loop shown in Figure 10, a clause links the nominal sentence of "Fred" and the verbal sentence of "holds", then the subsequent loops fail. This failure dates back from the transients of the table Tst_Stack [] until determining that the error relates to the lexical construction of "match". As "Fred" is of rank lower than "match", the transient is reduced to figure 11. "match, common name" and "Fred, proper name" are then tested as an option, then figures 12 to 15 show the development constructions on this basis.
Enfin, avec la figure 16 la phrase verbale est conclue et la structure est fermée avec une clause affirmative représentée sur la figure 17. Afin de mieux comprendre les règles de première, deuxième et troisième catégorie, celles-ci vont être explicitées pour l’exemple des figures 16 et 17. Finally, with figure 16 the verbal sentence is concluded and the structure is closed with an affirmative clause represented in figure 17. In order to better understand the rules of first, second and third category, these will be explained for the example Figures 16 and 17.
Sur la figure 16, un seul lien sémantique est établi entre les caractéristiques lexicales : le lien d’attribut entre « small » et « match ». Ainsi, le jeu de règles produit sera : In Figure 16, only one semantic link is established between the lexical characteristics: the attribute link between "small" and "match". Thus, the set of rules produced will be:
CaractLex(Groupe(Fred))=>Concept(Groupe(Fred)) CaractLex (Group (Fred)) => Concept (Group (Fred))
CaractLex(Groupe(hold))=>Concept(Groupe(hold)) Charex (Group (hold)) => Concept (Group (hold))
C aractLex(Group e(a))=>Concept(Group e(a))  C aractLex (Group e (a)) => Concept (Group e (a))
CaractLex(Groupe(small))=>Concept(Groupe(small))  CaractLex (Group (small)) => Concept (Group (small))
CaractLex(Groupe(match))=>Concept(Groupe(match))  CaractLex (Group (match)) => Concept (Group (match))
CaractLex(Groupe(Fred))&CaractLex(Groupe(hold))&Lien(Groupe(Fred),Groupe(hold )) => Concept(Groupe(hold))  Charex (Group (Fred)) & Charex (Group (hold)) & Link (Group (Fred), Group (hold)) => Concept (Group (hold))
CaractLex(Groupe(hold))&CaractLex(Groupe(match))&Lien(Groupe(hold),Groupe(ma tch)) => Concept(Groupe(match)) CaractLex(Groupe(small))&CaractLex(Groupe(match))&Attrib(Groupe(small),Groupe( match)) => Concept(Groupe(match)) Charex (Group (hold)) & Charex (Group (match)) & Link (Group (hold), Group (my task)) => Concept (Group (match)) Charact (Group (small)) & Charact (Group (match)) & Attrib (Group (small), Group (match)) => Concept (Group (match))
Sur la figure 17, deux autres liens sémantiques sont établis entre les caractéristiques lexicales : le lien d’acteur de « Fred » sur « hold » et le lien de thème entre « hold » et « match ». In Figure 17, two other semantic links are established between the lexical characteristics: the actor link of "Fred" on "hold" and the theme link between "hold" and "match".
Ainsi, deux règles de troisième catégorie sont ajoutées et remplacent les règles de deuxième catégorie de la figure 16 : Thus, two third category rules are added and replace the second category rules in Figure 16:
CaractLex(Groupe(Fred))&CaractLex(Groupe(hold))&Acteur(Groupe(Fred),Groupe(ho ld)) => Concept(Groupe(hold))  Charex (Group (Fred)) & Charex (Group (hold)) & Actor (Group (Fred), Group (ho ld)) => Concept (Group (hold))
CaractLex(Groupe(hold))&CaractLex(Groupe(match))&Thème(Groupe(hold),Groupe( match)) => Concept(Groupe(match))  Charex (Group (hold)) & Charex (Group (match)) & Theme (Group (hold), Group (match)) => Concept (Group (match))
La figure 18 représente le transitoire complet associé à l’exemple de la figure 17, et la figure 19 représente le graphe sémantique qui lui correspond. Ainsi, il apparaît que les caractéristiques lexicales sont liées entre elles par des attributs sémantiques dans des caractéristiques non lexicales. Cela transparaît sur la figure 18 par la liaison d’éléments de type ?argXX et ?refYY ou de type ?argXX et ?argYY. FIG. 18 represents the complete transient associated with the example of FIG. 17, and FIG. 19 represents the semantic graph which corresponds to it. Thus, it appears that the lexical characteristics are linked together by semantic attributes in non-lexical characteristics. This is shown in Figure 18 by the binding of elements of type? ArgXX and? RefYY or of type? ArgXX and? ArgYY.
Ainsi, il apparaît les liens suivants : Thus, the following links appear:
Actor ?arg27 ?ref28, Theme ?arg27 ?ref28, Attr ?argl5 ?argl7, NonldentifïableReferent ?arg 2 ?argl7.  Actor? Arg27? Ref28, Theme? Arg27? Ref28, Attr? Argl5? Argl7, NonldentifïableReferent? Arg 2? Argl7.
La figure 19 traduit ces liens sémantiques, et permet de représenter le graphe sémantique qui décrit le sens de la phrase, tel que produit par le dispositif 2. Le dispositif 2 produit donc un transitoire final qui a une structure d’arbre qui contient tous les liens à la fois syntaxiques et sémantiques de la phrase produite en entier. Cet arbre permet de produire un graphe sémantique qui donne le sens de la phrase. FIG. 19 translates these semantic links, and makes it possible to represent the semantic graph which describes the meaning of the sentence, as produced by the device 2. The device 2 therefore produces a final transient which has a tree structure which contains all the both syntactic and semantic links of the entire sentence. This tree makes it possible to produce a semantic graph which gives the meaning of the sentence.
Cela est vraiment fondamental car il est possible de créer de manière automatique, sans intervention humaine, une couche de description sémantique d’un texte, qui devient donc interrogeable. De plus, par la nature même du dispositif 2, cette couche de description sémantique peut être enrichie de manière incrémentielle, en fournissant de nouvelles phrases, sans avoir à refaire tout G entraînement. De plus, cette couche est interrogeable, et permet d’analyser ce que comprend le dispositif 2, ce qui le rend beaucoup plus manipulable. This is really fundamental because it is possible to automatically create, without human intervention, a semantic description layer of a text, which therefore becomes questionable. In addition, by the very nature of the device 2, this semantic description layer can be enriched incrementally, by providing new sentences, without having to redo all of the training. In addition, this layer is interrogable, and makes it possible to analyze what comprises the device 2, which makes it much more manipulable.

Claims

Revendications Claims
1. Dispositif de traitement automatique de texte par ordinateur, comprenant une mémoire (4) agencée pour recevoir des données de texte à analyser sous la forme de jetons comprenant chacun une chaîne de caractères et un identifiant de jeton unique, une base de données de concepts associant des chaînes de caractères et des identifiants de concept, certains au moins des identifiants de concept étant associés entre eux, des données de constructions lexicales modèles et des données de constructions structurelles modèles, comprenant chacune une ou plusieurs conditions d’application à une caractéristique et une ou plusieurs conclusions constituant des éléments à appliquer à une caractéristique, et une base de données d’observations associant au moins deux identifiants de concept, un type de relation et une valeur d’observation indiquant une probabilité de véracité du type de relation entre les au moins deux identifiants de concept, le dispositif (2) étant agencé pour travailler de manière répétitive sur un transitoire comprenant des caractéristiques lexicales et des caractéristiques structurelles produites en appliquant des constructions lexicales modèles et des constructions structurelles modèles, le transitoire étant initialisé avec des caractéristiques lexicales comprenant pour chaque jeton un identifiant de concept dont la fréquence est la plus importante dans la base de données de concepts et qui est associé à la chaîne de caractère du jeton, le dispositif (2) comprenant en outre : 1. Device for automatic word processing by computer, comprising a memory (4) arranged to receive text data to be analyzed in the form of tokens each comprising a character string and a unique token identifier, a concept database associating character strings and concept identifiers, at least some of the concept identifiers being associated with each other, model lexical construction data and model structural construction data, each comprising one or more conditions of application to a characteristic and one or more conclusions constituting elements to be applied to a characteristic, and an observation database associating at least two concept identifiers, a type of relation and an observation value indicating a probability of veracity of the type of relation between the at least two concept identifiers, the device (2) being agen created to work repetitively on a transient comprising lexical characteristics and structural characteristics produced by applying model lexical constructions and model structural constructions, the transient being initialized with lexical characteristics comprising for each token a concept identifier whose frequency is the most important in the concept database and which is associated with the character string of the token, the device (2) further comprising:
un rectifïcateur (6) agencé pour déterminer pour chaque caractéristique lexicale d’un transitoire une liste d’ identifiants de concept associés à l’identifiant de concept de cette caractéristique lexicale, pour déterminer un ensemble d’observations correspondant aux identifiants de concept des listes ainsi déterminées, et pour appliquer un moteur d’inférence logique probabiliste non- monotone pour déterminer l’identifiant de concept de chaque liste tel que les valeurs d’observations associées à ces identifiants de concept minimisent une fonction de coût définie en appliquant un opérateur de logique multivaluée à une ou plusieurs règles tirées du contenu des caractéristiques du transitoire et instanciées avec des valeurs d’observations correspondantes, et pour remplacer les identifiants de concept des caractéristiques lexicales du transitoire par les identifiants de concept ainsi déterminés, a rectifier (6) arranged to determine for each lexical characteristic of a transient a list of concept identifiers associated with the concept identifier of this lexical characteristic, to determine a set of observations corresponding to the concept identifiers of the lists thus determined, and to apply a non-monotonic probabilistic logical inference engine to determine the concept identifier of each list such that the observation values associated with these concept identifiers minimize a defined cost function by applying a logic operator multivalued to one or more rules taken from the content of the characteristics of the transient and instantiated with corresponding observation values, and to replace the concept identifiers of the lexical characteristics of the transient by the concept identifiers thus determined,
un apparieur (8) agencé pour déterminer parmi les constructions structurelles modèles celles dont la ou les conditions s’appliquent à une ou plusieurs des caractéristiques du transitoire, et pour retourner la liste des constructions structurelles avec la ou les caractéristiques auxquelles s’appliquent leurs conditions, le dispositif (2) étant en outre agencé pour classer les constructions structurelles associées à chaque caractéristique par fréquence d’utilisation, la première construction structurelle devant être appliquée au transitoire et les autres formant une liste d’options, et  a match (8) arranged to determine among the model structural constructions those whose condition or conditions apply to one or more of the characteristics of the transient, and to return the list of structural constructions with the characteristic or characteristics to which their conditions apply , the device (2) being further arranged to classify the structural constructions associated with each characteristic by frequency of use, the first structural construction to be applied to the transient and the others forming a list of options, and
un combinateur (12) agencé pour exécuter de manière séquentielle la sélection d’une construction structurelle devant être appliquée au transitoire, le stockage d’une copie du transitoire avec la liste d’options associée à la construction structurelle, et l’application de la construction structurelle devant être appliquée au transitoire à la ou les caractéristiques du transitoire à laquelle cette construction structurelle a été associée par l’apparieur (8), et pour répéter cette exécution séquentielle sur le transitoire ainsi modifié avec la construction structurelle devant être appliquée au transitoire suivante,  a combiner (12) arranged to execute sequentially the selection of a structural construction to be applied to the transient, the storage of a copy of the transient with the list of options associated with the structural construction, and the application of the structural construction to be applied to the transient to the characteristic or characteristics of the transient to which this structural construction has been associated by the pairer (8), and to repeat this sequential execution on the transient thus modified with the structural construction to be applied to the transient next,
le dispositif (2) étant en outre agencé pour déterminer, après l’exécution du combinateur (12), si les caractéristiques du transitoire produit définissent un arbre dont tous les nœuds sont liés entre eux et dépourvu de cycle, pour retourner cet arbre si c’est le cas, et pour répéter l’exécution du rectifïcateur (6), de l’apparieur (8) et du combinateur (12) sur le dernier transitoire produit sinon,  the device (2) being further arranged to determine, after the execution of the combinator (12), if the characteristics of the transient produced define a tree of which all the nodes are linked together and devoid of cycle, to return this tree if c 'is the case, and to repeat the execution of the rectifier (6), the matcher (8) and the combiner (12) on the last transient produced otherwise,
le dispositif (2) étant en outre agencé, lorsque G apparieur (8) ne retourne aucune construction structurelle à appliquer au transitoire, pour remplacer le transitoire courant par la copie du transitoire la plus récente, et pour exécuter le combinateur (12) avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire.  the device (2) being further arranged, when G pairer (8) does not return any structural construction to be applied to the transient, to replace the current transient with the copy of the most recent transient, and to execute the combiner (12) with the first construction from the list of options as a structural construction to be applied to the transient.
2. Dispositif selon la revendication 1, dans lequel le moteur d’inférence logique probabiliste non-monotone comprend un optimisateur utilisant l’algorithme des multiplicateurs avec directions alternées. 2. Device according to claim 1, in which the non-monotonic probabilistic logical inference engine comprises an optimizer using the algorithm of the multipliers with alternating directions.
3. Dispositif selon la revendication 1 ou 2, comprenant en outre un filtre (10) agencé pour déterminer, pour chaque construction structurelle devant être appliquée et la liste d’options associée un jeu de règles, pour déterminer un jeu d’observations à partir du jeu de règles et du ou des identifiants de concept associé à la caractéristique à laquelle doit être appliquée la construction structurelle devant être appliquée, et pour appliquer le moteur d’inférence logique probabiliste non- monotone avec le jeu de règles et le jeu d’observation afin de déterminer la construction structurelle devant être appliquée au transitoire et la liste d’options. 3. Device according to claim 1 or 2, further comprising a filter (10) arranged to determine, for each structural construction to be applied and the list of options associated with a set of rules, to determine a set of observations from the set of rules and the concept identifier (s) associated with the characteristic to which the structural construction to be applied must be applied, and to apply the non-monotonic probabilistic logical inference engine with the rule set and the set of observation to determine the structural construction to be applied to the transient and the list of options.
4. Dispositif selon l’une des revendications précédentes, dans lequel le rectifîcateur (6) définit des règles fréquentielles à partir de caractéristiques lexicales du transitoire, des règles de voisinage à partir des identifiants de concept des caractéristiques lexicales du transitoire et des identifiants de concept qui leur sont associés dans la base de données de concept à une distance choisie, et des règles structurelles tirées d’attributs sémantiques de caractéristiques non lexicales du transitoire liant entre elles deux caractéristiques lexicales. 4. Device according to one of the preceding claims, in which the rectifier (6) defines frequency rules from lexical characteristics of the transient, neighborhood rules from concept identifiers of the lexical characteristics of the transient and concept identifiers associated with them in the concept database at a chosen distance, and structural rules taken from semantic attributes of non-lexical characteristics of the transient linking two lexical characteristics.
5. Dispositif selon l’une des revendications 1 à 4, dans lequel le combinateur (12) est agencé pour stocker uniquement la copie du transitoire avec la liste d’options associée à la construction structurelle, et en ce que, lorsque l’apparieur (8) ne retourne aucune construction structurelle à appliquer au transitoire, pour remplacer le transitoire courant par la copie du transitoire la plus récente, et pour exécuter le combinateur (12) avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire, puis en répétant l’application du rectifïeur (6), de l’apparieur (8) et du combinateur (12) avec le transitoire résultant. 5. Device according to one of claims 1 to 4, wherein the combiner (12) is arranged to store only the copy of the transient with the list of options associated with the structural construction, and in that, when the matcher (8) does not return any structural construction to be applied to the transient, to replace the current transient with the most recent copy of the transient, and to execute the combiner (12) with the first construction from the list of options as a structural construction to be applied to the transient, then by repeating the application of the rectifier (6), the matcher (8) and the combiner (12) with the resulting transient.
6. Dispositif selon l’une des revendications 1 à 4, dans lequel le combinateur (12) est agencé pour stocker les constructions structurelles restantes devant être appliquées au transitoire en même temps que la copie du transitoire avec la liste d’options associée à la construction structurelle, et en ce que lorsque l’apparieur (8) ne retourne aucune construction structurelle à appliquer au transitoire, pour remplacer le transitoire courant par la copie du transitoire la plus récente, et pour exécuter le combinateur (12) avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire ainsi que les constructions structurelles restantes, puis en répétant l’application du rectifieur (6), de l’apparieur (8) et du combinateur (12) avec le transitoire résultant. 6. Device according to one of claims 1 to 4, in which the combiner (12) is arranged to store the remaining structural constructions to be applied to the transient at the same time as the copy of the transient with the list of options associated with the structural construction, and in that when the matcher (8) does not return any structural construction to be applied to the transient, to replace the current transient with the most recent copy of the transient, and for execute the combinator (12) with the first construction from the list of options as a structural construction to be applied to the transient as well as the remaining structural constructions, then repeating the application of the rectifier (6), the matcher (8 ) and the combiner (12) with the resulting transient.
7. Dispositif selon l’une des revendications précédentes, agencé pour analyser l’arbre retourné et pour produire un graphe sémantique dont les nœuds sont formés par les caractéristiques lexicales et leur identifiant de concept, et donc les liens sont définis par les attributs sémantiques de caractéristiques non lexicales liant entre elles deux caractéristiques lexicales. 7. Device according to one of the preceding claims, arranged to analyze the returned tree and to produce a semantic graph whose nodes are formed by the lexical characteristics and their concept identifier, and therefore the links are defined by the semantic attributes of non-lexical features linking two lexical features together.
8. Dispositif selon l’une des revendications précédentes, dans lequel le moteur d’inférence est agencé pour appliquer un opérateur de logique multivaluée choisi parmi le groupe comprenant la t-norme de Lukasiewicz, la t-norme minimale et le produit de Harnacher. 8. Device according to one of the preceding claims, in which the inference engine is arranged to apply a multivalued logic operator chosen from the group comprising the Lukasiewicz t-standard, the minimum t-standard and the Harnacher product.
9. Procédé de traitement automatique de texte mis en œuvre par ordinateur, comprenant les opérations suivantes : a) recevoir des données de texte à analyser sous la forme de jetons comprenant chacun une chaîne de caractères et un identifiant de jeton unique, une base de données de concepts associant des chaînes de caractères et des identifiants de concept, certains au moins des identifiants de concept étant associés entre eux, des données de constructions lexicales modèles et des données de constructions structurelles modèles, comprenant chacune une ou plusieurs conditions d’application à une caractéristique et une ou plusieurs conclusions constituant des éléments à appliquer à une caractéristique, et une base de données d’observations associant au moins deux identifiants de concept, un type de relation et une valeur d’observation indiquant une probabilité de véracité du type de relation entre les au moins deux identifiants de concept, b) initialiser un transitoire pouvant comprendre des caractéristiques lexicales et des caractéristiques structurelles produites en appliquant des constructions lexicales modèles et des constructions structurelles modèles, avec des caractéristiques lexicales comprenant pour chaque jeton un identifiant de concept dont la fréquence est la plus importante dans la base de données de concepts et qui est associé à la chaîne de caractère du jeton, 9. A computer-implemented automatic word processing method, comprising the following operations: a) receiving text data to be analyzed in the form of tokens each comprising a character string and a unique token identifier, a database of concepts associating character strings and concept identifiers, at least some of the concept identifiers being associated with each other, model lexical construction data and model structural construction data, each comprising one or more conditions of application to a characteristic and one or more conclusions constituting elements to be applied to a characteristic, and an observation database associating at least two concept identifiers, a type of relation and an observation value indicating a probability of veracity of the type of relation between the at least two concept identifiers, b) initialize a tran a site that may include lexical and structural features produced by applying model lexical constructions and model structural constructions, with lexical characteristics comprising for each token a concept identifier whose frequency is the most important in the database of concepts and which is associated with the character string of the token,
c) travailler de manière répétitive sur le transitoire en répétant les opérations successives suivantes : c) work repetitively on the transient by repeating the following successive operations:
cl) déterminer pour chaque caractéristique lexicale d’un transitoire une liste d’ identifiants de concept associés à l’identifiant de concept de cette caractéristique lexicale, pour déterminer un ensemble d’observations correspondant aux identifiants de concept des listes ainsi déterminées, et pour appliquer un moteur d’inférence logique probabiliste non-monotone pour déterminer l’identifiant de concept de chaque liste tel que les valeurs d’observations associées à ces identifiants de concept minimisent une fonction de coût définie en appliquant un opérateur de logique multivaluée à une ou plusieurs règles tirées du contenu des caractéristiques du transitoire et instanciées avec des valeurs d’observations correspondantes, et pour remplacer les identifiants de concept des caractéristiques lexicales du transitoire par les identifiants de concept ainsi déterminés, c2) déterminer parmi les constructions structurelles modèles celles dont la ou les conditions s’appliquent à une ou plusieurs des caractéristiques du transitoire, et pour retourner la liste des constructions structurelles avec la ou les caractéristiques auxquelles s’appliquent leurs conditions,  cl) determine for each lexical characteristic of a transient a list of concept identifiers associated with the concept identifier of this lexical characteristic, to determine a set of observations corresponding to the concept identifiers of the lists thus determined, and to apply a non-monotonic probabilistic logical inference engine for determining the concept identifier of each list such that the observation values associated with these concept identifiers minimize a defined cost function by applying a multivalued logic operator to one or more rules drawn from the content of the characteristics of the transient and instantiated with corresponding observation values, and to replace the concept identifiers of the lexical characteristics of the transient by the concept identifiers thus determined, c2) determine among the model structural constructions those whose or the C onditions apply to one or more of the characteristics of the transient, and to return the list of structural constructions with the characteristic or characteristics to which their conditions apply,
c3) classer les constructions structurelles associées à chaque caractéristique par fréquence d’utilisation, la première construction structurelle devant être appliquée au transitoire et les autres formant une liste d’options, et  c3) classify the structural constructions associated with each characteristic by frequency of use, the first structural construction to be applied to the transient and the others forming a list of options, and
c4) exécuter de manière séquentielle la sélection d’une construction structurelle devant être appliquée au transitoire, le stockage d’une copie du transitoire avec la liste d’options associée à la construction structurelle, et l’application de la construction structurelle devant être appliquée au transitoire à la ou les caractéristiques du transitoire à laquelle cette construction structurelle a été associée par l’apparieur (8), et pour répéter cette exécution séquentielle sur le transitoire ainsi modifié avec la construction structurelle devant être appliquée au transitoire suivante, c4) execute sequentially the selection of a structural construction to be applied to the transient, the storage of a copy of the transient with the list of options associated with the structural construction, and the application of the structural construction to be applied to the transient to the characteristic or characteristics of the transient to which this structural construction has been associated by the pairer (8), and to repeat this sequential execution on the transient thus modified with the structural construction to be applied to the following transient,
c5) déterminer, après l’exécution du combinateur (12), si les caractéristiques du transitoire produit définissent un arbre dont tous les nœuds sont liés entre eux et dépourvu de cycle, pour retourner cet arbre si c’est le cas, et pour répéter les opérations cl) à c5) sur le transitoire courant sinon,  c5) determine, after the execution of the combinator (12), if the characteristics of the transient product define a tree of which all the nodes are linked together and devoid of cycle, to return this tree if it is the case, and to repeat operations cl) to c5) on the current transient otherwise,
c6) si l’opération c2) ne retourne aucune construction structurelle à appliquer au transitoire, remplacer le transitoire courant par la copie du transitoire la plus récente, exécuter l’opération c5) avec la première construction de la liste d’options en tant que construction structurelle à appliquer au transitoire.  c6) if operation c2) does not return any structural construction to be applied to the transient, replace the current transient with the most recent copy of the transient, execute operation c5) with the first construction in the list of options as structural construction to be applied to the transient.
10. Procédé selon la revendication 9, dans lequel l’application du moteur d’inférence logique probabiliste non-monotone comprend l’application d’un optimisateur utilisant l’algorithme des multiplicateurs avec directions alternées. 10. The method of claim 9, wherein the application of the probabilistic non-monotonic logic inference engine comprises the application of an optimizer using the algorithm of multipliers with alternating directions.
11. Procédé selon la revendication 9 ou 10, comprenant en outre, entre l’opération c3) et l’opération c4) : 11. The method according to claim 9 or 10, further comprising, between operation c3) and operation c4):
c7) déterminer, pour chaque construction structurelle devant être appliquée et la liste d’options associée un jeu de règles, déterminer un jeu d’observations à partir du jeu de règles et du ou des identifiants de concept associé à la caractéristique à laquelle doit être appliquée la construction structurelle devant être appliquée, et appliquer le moteur d’inférence logique probabiliste non-monotone avec le jeu de règles et le jeu d’observation afin de déterminer la construction structurelle devant être appliquée au transitoire et la liste d’options.  c7) determine, for each structural construction to be applied and the list of options associated with a set of rules, determine a set of observations from the set of rules and the concept identifier (s) associated with the characteristic to which must be applied the structural construction to be applied, and apply the non-monotonic probabilistic logical inference engine with the rule set and the observation set to determine the structural construction to be applied to the transient and the list of options.
12. Procédé selon l’une des revendications 9 à 11, dans lequel l’opération cl) comprend la définition de règles fréquentielles à partir de caractéristiques lexicales du transitoire, de règles de voisinage à partir des identifiants de concept des caractéristiques lexicales du transitoire et des identifiants de concept qui leur sont associés dans la base de données de concept à une distance choisie, et de règles structurelles tirées d’attributs sémantiques de caractéristiques non lexicales du transitoire liant entre elles deux caractéristiques lexicales. 12. Method according to one of claims 9 to 11, in which operation c1) comprises the definition of frequency rules from characteristics lexicals of the transient, neighborhood rules from the concept identifiers of the lexical characteristics of the transient and the concept identifiers associated with them in the concept database at a chosen distance, and structural rules derived from semantic attributes of non-lexical characteristics of the transient linking two lexical characteristics to each other.
13. Procédé selon l’une des revendications 9 à 12, dans lequel l’opération c4) stocker uniquement la copie du transitoire avec la liste d’options associée à la construction structurelle, et dans lequel, après de l’exécution de l’opération cl), les opérations cl) à c7) sont répétées sur le transitoire courant. 13. Method according to one of claims 9 to 12, in which the operation c4) store only the copy of the transient with the list of options associated with the structural construction, and in which, after the execution of the operation cl), operations cl) to c7) are repeated on the current transient.
14. Procédé selon l’une des revendications 9 à 12, dans lequel l’opération c4) stocke les constructions structurelles restantes devant être appliquées au transitoire en même temps que la copie du transitoire avec la liste d’options associée à la construction structurelle, et dans lequel, après l’exécution de l’opération cl), l’opération c5) est appliquée avec les constructions structurelles restantes, puis en répétant l’application du rectifïeur (6), puis , les opérations cl) à c7) sont répétées sur le transitoire courant. 14. Method according to one of claims 9 to 12, in which operation c4) stores the remaining structural constructions to be applied to the transient at the same time as the copy of the transient with the list of options associated with the structural construction, and in which, after the execution of operation cl), operation c5) is applied with the remaining structural constructions, then repeating the application of the rectifier (6), then, operations cl) to c7) are repeated on the current transient.
15. Procédé selon l’une des revendications 9 à 14, comprenant en outre l’opération suivante : 15. Method according to one of claims 9 to 14, further comprising the following operation:
d) analyser l’arbre retourné par l’opération c6) et produire un graphe sémantique dont les nœuds sont formés par les caractéristiques lexicales et leur identifiant de concept, et donc les liens sont définis par les attributs sémantiques de caractéristiques non lexicales liant entre elles deux caractéristiques lexicales.  d) analyze the tree returned by operation c6) and produce a semantic graph whose nodes are formed by the lexical characteristics and their concept identifier, and therefore the links are defined by the semantic attributes of non-lexical characteristics linking them two lexical features.
PCT/EP2019/078140 2018-10-18 2019-10-17 Device for automatically processing text by computer WO2020079109A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1859660 2018-10-18
FR1859660A FR3087555A1 (en) 2018-10-18 2018-10-18 DEVICE FOR AUTOMATIC TEXT PROCESSING BY COMPUTER

Publications (1)

Publication Number Publication Date
WO2020079109A1 true WO2020079109A1 (en) 2020-04-23

Family

ID=66286378

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/078140 WO2020079109A1 (en) 2018-10-18 2019-10-17 Device for automatically processing text by computer

Country Status (2)

Country Link
FR (1) FR3087555A1 (en)
WO (1) WO2020079109A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2906049A1 (en) * 2006-09-19 2008-03-21 Alcatel Sa COMPUTER-IMPLEMENTED METHOD OF DEVELOPING ONTOLOGY FROM NATURAL LANGUAGE TEXT

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2906049A1 (en) * 2006-09-19 2008-03-21 Alcatel Sa COMPUTER-IMPLEMENTED METHOD OF DEVELOPING ONTOLOGY FROM NATURAL LANGUAGE TEXT

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"A semantic graph model for text representation and matching in data mining, Chapter 4", 2006, UNIVERSITY OF WATERLOO, article KHALID SHABAN: "A semantic graph model for text representation and matching in data mining, Chapter 4", pages: 67 - 90, XP055613038 *
ADRIÁN RIVERO: "Next generation of chatbots with NLP services and Graphs", 5 October 2018 (2018-10-05), XP055600588, Retrieved from the Internet <URL:https://chatbotslife.com/next-generation-of-chatbots-with-nlp-services-and-graphs-cd811a8165d7> [retrieved on 20190628] *
AMBROISE CADE ET AL: "AI-powered Knowledge Assimilation and Dissemination", September 2017 (2017-09-01), XP055612853, Retrieved from the Internet <URL:https://www.researchgate.net/profile/Ambroise_Cade/publication/319547480_AI-powered_Knowledge_Assimilation_and_Dissemination/links/59b2bc7f0f7e9b37434ea2bd/AI-powered-Knowledge-Assimilation-and-Dissemination.pdf> [retrieved on 20190814], DOI: 10.13140/RG.2.2.22095.59040 *

Also Published As

Publication number Publication date
FR3087555A1 (en) 2020-04-24

Similar Documents

Publication Publication Date Title
US9633005B2 (en) Exhaustive automatic processing of textual information
WO2006120352A1 (en) Device and method for semantic analysis of documents by construction of n-ary semantic trees
EP1364316A2 (en) Device for retrieving data from a knowledge-based text
WO2006040473A2 (en) Device for processing formally defined data
Schubert What kinds of knowledge are needed for genuine understanding
Harmon Narrative encoding for computational reasoning and adaptation
WO2020079109A1 (en) Device for automatically processing text by computer
RU2662699C2 (en) Comprehensive automatic processing of text information
EP3248111A1 (en) Lemmatisation method, and corresponding device and program
Gyawali Surface Realisation from Knowledge Bases
WO2020026229A2 (en) Proposition identification in natural language and usage thereof
Jenkins Designing Service-Oriented Chatbot Systems Using a Construction Grammar-Driven Natural Language Generation System
JP2017111411A (en) Method for education, study or research, computer program for the same and processor
Liu Semantic understanding and commonsense reasoning in an adaptive photo agent
Dufour-Lussier Reasoning with qualitative spatial and temporal textual cases
Catta Proofs as games and games as proofs: dialogical semantics for logic and natural language.
Lakhzoum Semantic organisation and generalisation mechanisms of abstract concepts
Venant Structures, commitments and games in strategic conversations
Thanh Machine translation of proper names from english and french into vietnamese: an error analysis and some proposed solutions
FR2939538A1 (en) Data sets correspondence searching method for e.g. Google search engine, involves performing iterative comparison of primary set of data with subset of secondary set of data, where comparison step considers similarity graph
WO2004025624A1 (en) Method enabling man-machine dialogue
Altowayan Efficient Algorithm for Answering Fact-based Queries Using Relational Data Enriched by Context-Based Embeddings
Lewis A Semantic Calculus: Common Sense Reasoning for Information Systems
FR3135802A1 (en) Method for supervised generation of a virtual semantic graph of specialized knowledge
Mortari et al. 19th Brazilian Logic Conference: Book of Abstracts

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19786353

Country of ref document: EP

Kind code of ref document: A1