def autoLabelSingleSemantics(self, parseTree: ParseTreeDrawable) -> bool: random.seed(1) nodeDrawableCollector = NodeDrawableCollector(parseTree.getRoot(), IsTurkishLeafNode()) leafList = nodeDrawableCollector.collect() done = False for i in range(len(leafList)): synSets = self.getCandidateSynSets(self.__turkishWordNet, self.__fsm, leafList, i) maxIntersection = -1 for j in range(len(synSets)): synSet = synSets[j] intersectionCount = self.intersection(synSet, leafList) if intersectionCount > maxIntersection: maxIntersection = intersectionCount maxSynSets = [] for j in range(len(synSets)): synSet = synSets[j] if self.intersection(synSet, leafList) == maxIntersection: maxSynSets.append(synSet) if len(maxSynSets) > 0: leafList[i].getLayerInfo().setLayerData( ViewLayerType.SEMANTICS, maxSynSets[randrange(len(maxSynSets))].getId()) done = True return done
def autoLabelSingleSemantics(self, parseTree: ParseTreeDrawable) -> bool: random.seed(1) nodeDrawableCollector = NodeDrawableCollector(parseTree.getRoot(), IsTurkishLeafNode()) leafList = nodeDrawableCollector.collect() for i in range(len(leafList)): synSets = self.getCandidateSynSets(self.__turkishWordNet, self.__fsm, leafList, i) if len(synSets) > 0: leafList[i].getLayerInfo().setLayerData( ViewLayerType.SEMANTICS, synSets[randrange(len(synSets))].getId()) return True
def __init__(self, folder: str = None, pattern: str = None): self.parseTrees = [] if str is not None: for root, dirs, files in os.walk(folder): for file in files: fileName = os.path.join(root, file) if (pattern is None or pattern in fileName) and re.match( "\\d+\\.", file): parseTree = ParseTreeDrawable(fileName) if parseTree.getRoot() is not None: parseTree.setName(fileName) parseTree.setFileDescription( FileDescription(root, file)) self.parseTrees.append(parseTree)
def autoLabelSingleSemantics(self, parseTree: ParseTreeDrawable) -> bool: nodeDrawableCollector = NodeDrawableCollector(parseTree.getRoot(), IsTurkishLeafNode()) leafList = nodeDrawableCollector.collect() for i in range(len(leafList)): synSets = self.getCandidateSynSets(self.__turkishWordNet, self.__fsm, leafList, i) if len(synSets) > 0: best = self.mostFrequent( synSets, leafList[i].getLayerInfo().getMorphologicalParseAt( 0).getWord().getName()) if best is not None: leafList[i].getLayerInfo().setLayerData( ViewLayerType.SEMANTICS, best.getId()) return True
def autoNER(self, parseTree: ParseTreeDrawable): self.autoDetectPerson(parseTree) self.autoDetectLocation(parseTree) self.autoDetectOrganization(parseTree) self.autoDetectMoney(parseTree) self.autoDetectTime(parseTree) nodeDrawableCollector = NodeDrawableCollector( parseTree.getRoot(), IsTransferable(self.secondLanguage)) leafList = nodeDrawableCollector.collect() for parseNode in leafList: if isinstance(parseNode, ParseNodeDrawable) and not parseNode.layerExists( ViewLayerType.NER): parseNode.getLayerInfo().setLayerData(ViewLayerType.NER, "NONE") parseTree.save()
def autoArgument(self, parseTree: ParseTreeDrawable, frameset: Frameset): nodeDrawableCollector = NodeDrawableCollector( parseTree.getRoot(), IsTransferable(self.secondLanguage)) leafList = nodeDrawableCollector.collect() for parseNode in leafList: if isinstance(parseNode, ParseNodeDrawable) and parseNode.getLayerData( ViewLayerType.PROPBANK) is None: for argumentType in ArgumentType: if frameset.containsArgument( argumentType) and self.autoDetectArgument( parseNode, argumentType): parseNode.getLayerInfo().setLayerData( ViewLayerType.PROPBANK, ArgumentType.getPropbankType(argumentType)) if Word.isPunctuationSymbol( parseNode.getLayerData(self.secondLanguage)): parseNode.getLayerInfo().setLayerData( ViewLayerType.PROPBANK, "NONE") parseTree.save()