US 12,174,916 B2
Method and apparatus for contract analysis
Noam Kalush, Be'er Sheva (IL); Anat Parush Tzur, Be'er Sheva (IL); Idan Richman Goshen, Be'er Sheva (IL); Lisa Woo, Arcadia, CA (US); Emer Fitzpatrick, Celbridge (IE); Skye Jones, Georgetown, TX (US); Balaji Dhamodharan, Round Rock, TX (US); Christopher Schneider, Vlamao (BR); Daniel Coutinho, Fortaleza (BR); Joao Adalino Lopes de Moraes, Jr., Guaiba (BR); Guilherme Toralles Darley, Porto Alegre (BR); Eder Soares, Eusebio (BR); Lidiane Silva, Fortaleza (BR); Amihai Savir, Sansana (IL); Carlos Augusto Barra, Indaiatuba (BR); and Eder Crespo, Novo Hamburgo (BR)
Assigned to EMC IP Holding Company LLC, Hopkinton, MA (US)
Filed by EMC IP Holding Company LLC, Hopkinton, MA (US)
Filed on Jul. 23, 2021, as Appl. No. 17/383,537.
Prior Publication US 2023/0028534 A1, Jan. 26, 2023
Int. Cl. G06F 18/22 (2023.01); G06F 18/23 (2023.01); G06F 40/205 (2020.01); G06Q 50/18 (2012.01); G06V 30/416 (2022.01)
CPC G06F 18/22 (2023.01) [G06F 18/23 (2023.01); G06F 40/205 (2020.01); G06Q 50/188 (2013.01); G06V 30/416 (2022.01)] 18 Claims
OG exemplary drawing
 
1. A method, comprising:
obtaining, by a contract analyzer that is executed on a computing device, a counterparty contract, the counterparty contract including a contract that is being proposed by a counterparty to a user;
performing, by the contract analyzer, a segmentation of the counterparty contract to generate a plurality of sentence clusters, each of the plurality of sentence clusters corresponding to a different provision in the counterparty contract, wherein generating the plurality of sentence clusters includes: generating a plurality of vectors, each vector representing a different sentence in the counterparty contract, comparing the respective vector for any given one of the plurality of sentences to a respective vector of a next sentence in the document, adding the given sentence to a current sentence cluster when the respective vector for the given sentence matches the respective vector of the next sentence, and instantiating a new cluster and adding the given sentence to the new cluster when the respective vector for the given sentence does not match the respective vector of the next sentence;
generating, by the contract analyzer, a plurality of counterparty provision vectors based on the counterparty contract, each of the plurality of counterparty provision vectors being generated based on a different one of the plurality of sentence clusters;
retrieving, by the contract analyzer, a user provision vector;
calculating, by the contract analyzer, a plurality of similarity scores for the user provision vector, the plurality of similarity scores being calculated based on the user provision vector and the plurality of counterparty provision vectors, each of the plurality of similarity scores indicating a degree of similarity between the user provision vector and a respective one of the plurality of counterparty provision vectors;
detecting, by the contract analyzer, whether the plurality of similarity scores satisfies a condition that is associated with the user provision; and
outputting a notification associated with the user provision, the notification being based on an outcome of the detection.