def generateWordsFromIndices(wordSeriesIDs, earliestDate, latestDate):
    wordSize = len(wordSeriesIDs)
    # Get Data Series
    words = None
    dates = None
    for i in range(wordSize):
        data = EM_DBHelp.getWordHistory_WordHistoryTable(
            db_connection, db_cursor, wordSeriesIDs[i], beforeDate=latestDate, afterDate=earliestDate
        )
        dt = np.dtype("int,float")
        data = np.array(data, dtype=dt)
        data.dtype.names = ["dates", "values"]
        if words is None:
            words = np.empty((len(data), wordSize))
            dates = data["dates"]
        if not (data["dates"] == dates).all():
            raise Exception("Dates for different series do not match up")
        words[:, i] = data["values"]
        # Tuplefy words
    numWords = words.shape[0]
    for j in range(numWords):
        words[j, :] = tuple(words[j, :])
        # Return
    return (dates, words)