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
Пример #2
0
 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
Пример #3
0
 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
Пример #5
0
 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()